Today at OOPSLA, I attended a panel discussion on databases and objects, which basically were about object databases vs. relational databases + object-relational mapping. This was a very interesting panel discussion that focused on where we are today and were the technologies are evolving. Panelists included Erik Meijer from Microsoft, Patrick Linskey from BEA, Bob Walker from object database vendor GemStone Systems, Craig Russell from Sun Microsystems, and Christof Wittig from DB4Objects.
Why do we need two languages?
One questions that was raised by the evangelists of object databases, is why do we need two languages – one language for applications programming, and one for data manipulation. Of course, their answer to this question is that we don’t. This is also a trend that we see in object relation mapping approaches – trying to make application developers not having to relate to database languages, first and foremost SQL. Another example is Microsoft’s Linq technologies which tries to bring data manipulation features to their programming languages, C# and VB.
Why can’t database be as agile?
A question from the audience was why databases cannot be agile and support refactoring the way programming languages do. Supporters of object databases thought, big surprise, that object databases was a good enabler for being agile. Furthermore, one of the panelists also pointed out that dynamic languages are the best solution for being able to handle change. Smalltalk was given an example that enabled refactoring, together with object databases.
Where are we in 10 years?
The panelists were also challenged to share their thoughts on where databases will be in 10 years. Here are some of the answers:
- Objects will be available for the application in memory at all times. (Bob Walker)
- Data will be decentralized across the network (Linskey)
- One central question is who owns the data (Russell)</li>
Object databases seems like a very interesting concept, and it has been around for 20 years. So, why are they not more widely used? According to one of the panelists, object databases scale very well because they enable dividing and distributing data across different servers. This made me very eager to try out object databases, to get a hands-on feeling about how they work. Furthermore, there is an open source object database out there, db4objects, that seems very interesting.