Sunday, July 8, 2007

Is SQL/Database Programming Going to be Obsolete?

If the Java Content Repository (JCR) API expert group's vision bears out, in five or ten years' time we will all program to repositories, not databases
David Nuescheler, CTO of Day Software

What’s the truth?

It’s very true that
  • Java Content Repository API (JSR 170) has simplified data management by providing standard simplified APIs with utilities like “Repository Engine”. It reduces development time of your application to a large extent. With JCR, you can be completely oblivious about underlying storage and structures.
  • It addresses many of the data management features (e.g. versioning, inheritance, complex data reference, fine-grained security, dynamic extensibility etc) which standard relational and object databases lack.
  • It adds great deal of flexibility with the underlying persistence storage. If you are planning for enterprise level products, it really matters if you pose constraint on underlying storage of databases. Customer will always want to use their existing storage system.

The Question is efficiency!!

Being based on DOM manipulation, JCR APIs will certainly be slow compared to SQL. Also programming at database end, using PL/SQL, does help to increase the efficiency to a considerable extent.

What is the Trade-off?

Here there is also another factor - the present trend which needs to be considered because reusability and interoperability are major aspects of application development. With the advancement of distributed computing and development of Web2.0, most of the applications are now data centric – content based. Also there is a strong initiative in open source community to go for repository programming. Think of blog, twiki – all these are content based. With the popularity of Content Management System (CMS) in recent years, you can imagine how enterprise applications are becoming more and more content based.

So yes!! All these above factors imply that JCR is worth of serious look!

Having said all these I feel present SQL programmers (even in case they are reluctant to go for new technology) can always relax. It will certainly take years for repository programming to replace database programming mainly because

  • Technologies/Tools related to repository programming yet to be evolved
  • We still don’t have enough skilled resources for repository programming

Finally it will never be easy to replace existing applications based on database programming.