There are many reasons for Java's success. Although heavily debated and discussed, the "Write Once Run Anywhere" aspect of Java is one of the reasons. A sometimes less-heralded reason is Java's superior object-oriented implementation. I don't view myself as an OO expert, but I've observed the rapid market acceptance of Java as compared to other OO languages. In the past these languages took many years to enter the mainstream (C++) or remained in a niche market (SmallTalk). The creators of Java were able to stand on the shoulders of others that had created OO languages; they were able to capitalize on the tremendous strength of OO programming and avoid the pitfalls. With Java, they created a language and platform that's allowing OOP to rapidly enter the mainstream.
With my background in database technology, I've seen similar sea changes in databases. Before relational databases there were network and hierarchical databases. Relational databases were the new kid on the block, and it took Oracle's success to show that these early database models could be replaced. In the mid to late eighties, some believed that relational databases would be replaced by another model - object-oriented databases. In Silicon Valley hundreds of millions of dollars were invested in OODBMS start-up companies. In the last ten years the market has made an overwhelming choice. Today RDBMS is a multibillion-dollar ($10 billion+) market and OODBMS is only a $200-300 million market. OODBMS companies have found themselves relegated to a niche market providing very specialized solutions.
Now with Java and OOP entering the mainstream the proponents of OODBMS are hanging their hat on promoting the belief that OOP requires an OODBMS. They're hoping that Java programmers will believe that the same advantages that are derived from OOP will also come from using an OODBMS.
What's missing here is that one of Java's strengths is its ability to connect the old world with the new. The new world includes application servers, mobile computing and Internet devices. The old world contains a vast amount of relational data, among other things. Sun has spent a lot of effort on JDBC because they understand the importance of providing Java programmers with the ability to access the vast amount of relational data available. With JDBC Java programmers can access all the world's relational data, and as they move from project to project, or job to job, the skills they acquire in working with an RDBMS are easily transferred. Contrast this with working on a project that uses an OODBMS. The likelihood that the next project or job will use an OODBMS are about 100 to 1 based on the relative market sizes. Since OODBMSs are in a niche market, the Java programmer who spends time on an OODBMS application will be too.
The question to be asked is: "Why has RDBMS maintained a dominant position for over 20 years? Is it because Larry Ellison is a tremendous marketeer and has managed to fool us all?" Larry is good but not that good. The answer may be too simple to believe. The relational model has stood the test of time simply because it's good. Most of the world's data isn't terribly interesting or complex and fits quite nicely into simple rows and columns. The complexity comes from the ever-evolving use of the data. RDBMS with SQL allows the use of the data to evolve in unpredicted ways. Yes, there are special situations where an OODBMS approach works best, such as parts explosions, CAD or mapping. These special cases can now be solved with OO extensions to the relational model found in the SQL '99 standard or with object-to-relational mapping tools.
There are many reasons for the success of RDBMS over OODBMS. Unlike OODBMS the data relationships don't have to be decided ahead of time. As the uses of data evolve the RDBMS can adapt through the support of joins and other dynamic aspects of SQL, and by easily altering the relational schema.
SQL provides an industry-wide standard for accessing and managing data. There's no equivalent industry-accepted query language for OODBMS. One must write a procedural program for every new use of the data. The RDBMS market is supported by a large aftermarket that includes application development tools, report generators, design tools, etc. No such aftermarket exists for the OODBMS market. The list could go on.
We all want Java to succeed and it will. Java's success will grow as we bridge Java to the highly successful RDBMS market. Java OODBMS applications will find themselves in the OODBMS niche. These applications will only detract from the momentum of Java because they'll be isolated.
At PointBase we strongly believe in this, so we want to help every Java programmer learn how to write Java applications that use an RDBMS. On our Web site is a free developers' version of our 100% Pure Java database. A Java programmer can get up and running in minutes and try their hand at developing an RDBMS application. It's compatible with Oracle but doesn't require the complexities or expense of buying and installing Oracle. We encourage Java programmers to download this free PointBase developers' version so they can learn how to use RDBMS with Java. On our Web site we also host Developers Central to help answer questions on how to build RDBMS applications in Java. In our own way we're doing our part to help Java succeed by connecting Java to the lucrative world of relational data.
Bruce Scott, president, CEO and founder of PointBase, is a leader in the area of enterprise and embedded database architecture and product development. A cofounder of Oracle in 1977, Bruce cofounded Gupta Technology in 1984, pioneering the notion of the small footprint database server for
He can be reached at: [email protected]