6 Reasons for Not Using db4o
Written on Monday, January 21, 2008 by Edwin Sanchez
Don’t misinterpret the title. Db4o is such a good product. I admit that I was skeptical to use it at first. But once you tried using it, you don’t want to stop. You may know other reasons from people you know why they are still not using db4o. Are you one of these? Read on. You will not use db4o unless:
- You want to take it slow. If you want to spend time mapping your objects      to relational counterparts, that’s it for you. Even if there are ORM      tools, you still need some time that a native ODBMS will not require.
 - Your faith is in RDBMS. Some developers I know have been “doctrinated”      that RDBMS is better and ODBMS is not good. We can not blame people      thinking that after what happened to history. Added to this, there is this      tendency of sticking to “What’s In? In is cool” and sticking to the      majority. They think the vast majority is way cooler. And this vast      majority is the RDBMS crowd. But it’s high time to look at the products      today, especially db4o. The product is promising and there are thousands      and thousands of members in the community trusting the product and the      company behind it. 
 - You want more work and less implementations. Coding for queries, inserts, updates and      deletes are very simple in db4o. This will mean more time for features to      be implemented than spending time mapping objects to relational      counterparts. More implemented features means good for us developers and      it equates to good employee performance and satisfied customers.
 - You want more time in your work and less with      love ones. I remember the days      when my colleagues and friends used to say “No time for love”. I was      single back then and I’m spending less time with my girlfriend (now my      wife) because of lots and lots of things to code. Now I have a 3-year old      daughter and I need even more time for love ones. If your development      tools can cut development time and your database does not require more      coding, then you’ll have more quality time for your family. Db4o made my      database tasks simpler. 
 - “But you can do away with ORM and map your table      fields straight to your user interface, right?” Before I answer that, I can see that there is a      group who prefers RDBMS and ORM Tools. On the other side is a crowd who      prefers to use ODBMS like db4o. The main goal of both groups is to adhere      with object-oriented design and principles. This is not bad.      Object-oriented principles have been proven to be advantageous many times.      However, there is a third crowd who will neither do ORM nor objects. They      say that the overhead of doing ORM will be reduced by deviating      object-oriented rules. That is, do your SQL homework, call it in C# or any      language and map it to your visual controls. Actually, you can do this in      Visual Studio without too much coding effort. Just drag the data controls      and visual controls to your form or web page, set the properties and      that’s it. You have a running application! Just to answer the question,      yes, you can escape from ORM and its overhead and map it straight to      visual controls. But why not solve the ORM issues by using a native      object-oriented database like db4o? You adhered to object-oriented      principles without hurting performance and you got rid of the impedance      mismatch at the same time.
 - You just don’t know db4o. When I started working with db4o, I told my team      about it. Then I told my boss. I talked about it with other developers I      know. I even tried a demo from one of my projects. And they think it’s      cool. I was allowed by my boss to look into it. But you know what? When I      talked to people about it the first time, they never heard of it. Knowing      these reasons now, I think there is some lack of promotions in certain      areas like mine. I don’t know with others. Starters can always download and try it      out and read (thoroughly) the documentation. You won’t regret you had.      Then, we can help by telling friends about it. Write something about it      and tell the world. Contribute codes and help newcomers cope up. 
 
As usual, this is just to share my thoughts on my favorite database. I’ve been using it in a Client-Server environment so you may have a different experience than mine. But generally speaking, you can think of the thoughts presented here.