Bitter talking
posted Saturday, 13 September 2003
Tuesday night I had the pleasure of listening to Bruce Tate for the third time in less than a year. I have to say, Bruce is the master of explaining enterprise or persistence level anti-patterns.
During this talk, Bruce walked us through the cycle of choice of persistence frameworks. The cycle started with roll your own solution and then moved on to use reflection based persistence frameworks, EJB persistence, and the evolution of JDO. The cycle ends with the current trend back to rolling your own.
The reason for using a persistence framework such as TopLink or anyone of the JDO offerings was to reduce the overall effort needed to build an application. And in truth, using any of these persistence frameworks will reduce the effort. If this is really the case, then how come so many projects choose to build their own persistence frameworks? Well, part of the answer likes in corporate accounting practices but there is another component, vendor lock in.
Is vendor lock-in a real or perceived problem?
A common trait of these persistence frameworks is that they all try to be unobtrusive. In other words, they try to inflict very few changes to the object model. In fact, JDO implementations work with no changes to the object model. The second trait is that they map objects to the database. In most cases, a tool is used to generate an XML file. The tool typically uses introspection to guide the developer in building these mappings. The last part is query support.
Unlike the other two components, support for quires is intrusive. Each of the above mechanisms inflicts it’s own idiosyncrasies on the code base. Changing from one mapping mechanism to another will require the development teams to redo all of the quires. So, is vendor lock-in a real problem? It would seem that the answer is yes but in most cases, the lock-in cost is not all that great as the effect of the change has been minimized to a small though important subsection of code. In addition, there are many costs associated with replacing any part of any system. Even so, the advantages of using a vendor supported product that has been written by experts that have given a significant amount of thought to the solution seems like a fair less riskier route to take then to build your own.
One point that Bruce did make that I can back up from personal experience, using a product such as TopLink or a JDO implementation will result in about a 30% reduction in effort on a large number of applications. Of course, your mileage may vary.
So Bruce, thanks for the great though provoking presentation.. I only have two requests. First, please lose the yellow font on the navigation slides and secondly, please add in more or your kayaking pictures.