2009-07-18

Oracle to Buy Sun, a second look

For some time now, I've been learning parts of the Java Enterprise Edition platform, and what I've seen is a great platform that can be the best-in-class if used properly and if it was easier to learn.

But what I find so much interesting is the multitude of frameworks in the market, two different presentation layer standards (JSP and its successor JSF), many different JSF extension frameworks (Apache MyFaces Tomahawk, Sun Woodstock, ICEfaces, JBoss RichFaces, Apache MyFaces Trinidad, Oracle ADF Faces), other not-in-the-specification frameworks (Tapestry, Struts, Apache Wicket, GWT, Spring MVC and others), many implementations of the JPA standard (the de-facto standard Hibernate, the JPA2 reference implementation EclipseLink, the Oracle TopLink, OpenJPA, and others), many Servlets containers (Tomcat, Jetty and commercial offerings) and various EJB containers, the complete enterprise applications building frameworks as Spring, Seam, and many others.

And that's just for the parts I explored so far.

Also the desktop front suffers from less overlap/duplication with 2 GUI widgets framework (the Java standard Swing, and the IBM/Eclipse influenced SWT framework) and their respective applications framework (the Swing Application Framework and the Eclipse Rich Client Platform).

The same is true in the IDEs front, we just don't have 2 major IDEs (Eclipse and NetBeans), but we have many commercial IDEs built over the Eclipse foundation (many of the IBM Rational offerings, RedHat/JBoss Developer Studio, Embarcadero/Borland JBuilder), some commercial offerings (most notably the IDEA IntelliJ) and the Oracle free (but less fair to play with the market standards) JDeveloper.

At first I just thought that is a waste of brain cycles and time of a talented and very smart community, and not just how many things has been done and redone and then-again redone, it is just plain confusing to try to learn or even design an application while taking in consideration the pros and cons of each framework/standard/application/library and presents a real challenge for a topic that could be easier to penetrate and learn, also such duplication creates many different-and-separated camps of experienced developers in the market.

But then I found that the real reason all these people are still in the Java camp is because of the ability to do things just as you want it (just think of any barely-reasonable way to do enterprise applications and chances are that a framework is out there waiting for you to be used) and the many different ideologies behind each framework (ranging from heavily-closed source and commercial frameworks to BSD-style open source frameworks) and that the ability of the Java community to re-invent the wheel when desired easily a key feature for the backing of virtually all the big software companies in the world (except Microsoft of course, not because it was uninterested, but because it wanted to play it too-hard with the market).

How such community will be affected by the Oracle acquisition is yet to be seen, but I'm not so optimistic as before, the Java EE may grow better under the Oracle umbrella, but it may be less free and less open to the community, which is exactly what the Java EE community doesn't need, the backing of the various software companies and open source communities what makes Java a market leader and the biggest player in the enterprise applications market.

I hope that Oracle understands the chemistry between Java and freedom (or it keeps enough Sun executives to keep such freedom possible) and that only a multiplayer game is a game worth playing.

No comments: