

Ask HN: Object Oriented databases? - littelrocket

What is everyone's opinion on object oriented databases?<p>I see a lot of talk about NoSQL unseating incumbent SQL players, but is something like db4o important at all?<p>Thanks for clearing it up!
======
fractallyte
OODBs negate the need for ORM. You can program in your OO language, and have
your data stored 'natively'. This can be a huge advantage (removal of a
bottleneck in translating between data storage paradigms), but one also loses
data portability (the OODB tends to be uniquely tied to the language it's
developed in).

One outstanding example is GemStone, a high performance OO database: the
development environment (Smalltalk) _is_ the database; data is 'just'
persisted.

Smalltalk also has Magma DB, which is mature, open source, and under active
development.

Why Smalltalk? Pure objects, elegant syntax; one of the best languages _ever_.

~~~
karmajunkie
gemstone is also used with a ruby implementation called Maglev that hit 1.0
recently.

------
kls
At one point in time the OODB's where making quite a bit of buzz but it
quickly died down when most of the database vendors added features to allow
similar storage options. We used one a long time ago and it leaked memory bad,
it was a horrible experience keeping the thing together and running. I am sure
they have improved since then, but with the features now available in existing
databases, I really don't see the value in investing the effort to go over to
a pure OODB.

------
PythonDeveloper
db4o is not unique in the claims it makes. I can store objects from any
language in any database. The only requirement, and the reason why db4o only
supports java and .NET, is that the language must support serialization of the
object in both directions.

I have used this methodology along with Memcache (as a real-time database) in
C#, PHP, Python, and Java, as well as storing those objects to PostgreSQL
databases.

That said, I don't think I would use db4o simply based on it's claim to be
able to store serialized objects. PostgreSQL, my database of choice, has
trillions of user hours on it and is well supported by hundreds of thousands
of users.

NoSQL databases store the tuples (or tuple-like structures) in indexed form,
which is convenient but can be inefficient. I prefer to store only the
pertinent tuples for indexing, and the serialized blob by itself as a non-
indexed element.

