Marc Andreesen, one of the original founders of Netscape, has joined the board of Zend Technologies.
Zend produce the leading PHP engine used for running PHP on web servers.

Articles, notes and random thoughts on Software Development and Technology
Marc Andreesen, one of the original founders of Netscape, has joined the board of Zend Technologies.
Zend produce the leading PHP engine used for running PHP on web servers.
DexX have an an article on their site titled Use Stored Procedures for Java Persistence”. The article proposes the use of Stored Procedures for data access in Java applications to address some of the issues that Java applications commonly have with accessing data.
The problem with the article is that I don’t think it is addressing the main problems, but rather ignoring the problems that are most significant. The main issues the author identifies are:
As a whole I think this article is flawed in the understanding of the issues involved in Java application persistence. Statements such as this:
“As a Java developer, you have many choices for your application’s persistence layer. You can use entity beans with either container-managed persistence (CMP) or bean-managed persistence (BMP), or you can execute SQL queries from within your Java code through the Java Database Connectivity (JDBC) API.
Typically, those not familiar enough with SQL will choose CMP entity beans or frameworks such as TopLink and Hibernate, which generate queries and help to isolate them from the Java code. Regardless of which you choose, the resulting code will still contain Java-based queries. This article advises against this approach and proposes an alternative form of persistence that uses database stored procedures.”
The reason why frameworks such as Toplink and Hibernate are used is to address the issue of the ‘object/relational mismatch’ problem – we code Java applictions as Object Oriented applications using OO concepts, using an OO language. Why do we do this? Because an Object Oriented language allows us to model and implement a system with the main domain entities that are central to our business as Classes, which have attributes and behavior, typical to how we observe them in real life. Is this the best approach to implement a system? Maybe not, but it the currently accepted best approach and most natural approach, instead of using procedural languages which a centered more on the implementation logic as sequential steps rather than the data enties and their attributes, relationships and behavior as in an OO language. The problem is that current Relational Databases are relational, and do not use OO concepts. True, you can attempt to represent class inheritance using some workaround concepts expressed as relationships bewteen tables, but RDMSs today do not have good (I say ‘good’, because some database do have primitive object support) support for OO concepts which we take advantage of in our OO languages. This is the core problem – how do you work with Objects on one side and relational data on the other side? This is the problem that frameworks such as Hibernate and Toplink address (I won’t even mention Entity Beans here because up until 3.0 the Entity Bean approach was so flawed that it should not even be considered as a viable solution).
The given reason “those not familiar enough with SQL will choose CMP entity beans or frameworks such as TopLink and Hibernate” is a complete and utter misunderstanding of what the core issues are, and what the goals of these technologies are. Stored Procedures have their place – if I need to do some data manipulation and complex retrieval that involves several queries and iteration over the results, it makes sense to execute this close to the database and take advantage of the power of the database and what it does best. However, to say the use of Stored Procedures to solve the problems of data access in Java applications is a complete misunderstanding of what the problems actually are.
Object/Relational Mapping tools such as Toplink andf Hibernate address the issues that we have today. We use OO languages and OO concepts to build our application, and we use relational databases to store our data. Both approaches are the current best approach to solving particular issues. The main problem is that they do not work well together, like trying to force a square peg into a round hole. The translation of OO concepts to relational is the issue that Toplink and Hibernate (and others) address. This does not mean of course that this will always be the ideal solution. For example, assuming the OO databases mature to a point where they are comparable to the performance and reliability of traditional relational databases, then this would seem to be the ideal solution using current OO concepts – implement the system using OO concepts and technologies, and store data in an OO datastore.
I bet no-one could have seen that coming. Only up until a couple of years ago Steve Balmer was foaming at the mouth and pronouncing the Open Source software was a ‘cancer of the software industry’. How times change. First came the Linux lab up at Redmond (who knows what it is called internally – the ‘lab of lost opportunities’?), and now Microsoft are embracing and helping out a serious competitor that develops one of the fastest growing Java Application Servers out there today.
Are Microsoft seeing the light, or are they realizing they can’t continue to run scared, that they have to starting playing in the same game to be able to keep up with changes in industry trends, for example, the widespread adoption of Open Source software in favor of expensive commercial software?
Launching any new technology these days is all about the marketing and getting consumers sufficiently hyped up that they’ll buy anything. Microsoft currently have possibly the most obscure marketing page for the upcoming XBox 360 that involves pictures of trees and animated rabbits – it looks pretty neat but doesn’t tell you much about anything. It sounds like its advertising for the launch event for the XBox360, but even that is not clear.
The questions in a short quiz to win the chance to go to what ever it is that this site is about hint that there is a possibility that Microsoft will have a giant inflatable XBox360 in the Macy’s Thanksgiving Parade this year…