So, I think we have a little need for clearing one important point:
I’m a pro Java developer - but a ruby noob. I can’t tell how the ruby implementations & databases work. Can’t tell yet ;-).
For example, I’m still suffering severe nightmares in which abstract method definitions are hunted down by crazy mixins after having read the Pickaxe’s chapter 5 ;-).
My experience with OODBs is limited to academic experiences with db4o - which is a rock solid standard solution.
Although I can’t answer the questions on MongoDB, I think this datasheet might answer most of your questions. These benchmark results look quite astonishing, too - but it’s marketing material after all.
I messed up our advanced databases lecture back then when I solved the laboratory task - implement an ORM - scheduled for a 4 week duration in just an afternoon.
Of course I had to redo it in a relational DBMS surrounding, but the prof took db4o very serious & by the end of the semester it was part of his lecture’s script. Nice!
Sadly however, I do what I do for a living and I need to develop with my clients interests and, more importantly, opinions in mind.
Our Company uses the good old Oracle DBs - but if I’d redesign that part or start from scratch, an OODB would definitely be my DBMS of choice.
I don’t work for RnD though - but it wouldn’t be the first time we did a radical change. Our early product was written in perl - then we redesigned it in Java & were Suns reference implementation for some time in the early years of Enterprise Java.
“why change from a method tried and true used in data marts and applications in the enterprise around the globe?”
So - I’m with you - we’re doing solid work with good old fashioned systems. But sometimes you have to rethink & innovate. I think the Pragmatic Programmers called this “Buy cheap, sell high” or something. But I’m not into OODBs, Ruby & stuff for some kind of monetary profit. It’s just a challenge & big fun.
It’s always good to see things from a different angle. And it’s funny to catch yourself thinking “Where do I put the primary key in that OODB? Ah, ok. It’s OO, I see.” or to realize that getter/setter isn’t a pattern, but an idiom.
OK, I got a bit carried away. But I think it’s worth the detour ;-).