Thursday, December 29, 2005

YAF = Yet Another Framework

Java has a real problem. Because of the tower of Babel, god smote his creations with the curse of multiple languages. That syndrome has struck java, with its near limitless supply of latest and greatest frameworks. All a javaphile has to do to be overwhelmed is follow TheServerSide for a month and be overwhelmed. Christ, even struts has split into two projects.

Problem A) Most of these frameworks overlap, or are superfluous copies of one another
Problem B) Most of these frameworks have useless websites and minimal documentation
Problem C) Most of these frameworks can't even define themselves in a capsule

Java could afford to be fractious and inventive in the earlier pre-dotNET days. But things are serious now. The Java Community Process may be the general process for the gradual christening of many of these frameworks, but the JCP takes far too long, usually has to wait for a new JVM release, and the end solution usually is overengineered yet still much worse that the original inspirations. For example:

Log4J vs. JDK1.4 Logging
Hibernate vs. JDO
JavaServerFaces vs. Tapestry

Apache-Jakarta functions in some degrees as a JCP-lite, but it has major problems with documentation, web site development, and limited financial support that would enable those capabilites.

But my biggest beef with frameworks is the pointless marketspeak used to "sell" them. Since 99% of the frameworks are absolutely free, who is this "sell" speak for? For example, every single framework I've seen is lightweight, powerful, scalable, full-stack, high performance, optimized, and obviously full of bullshit, since each and every one of those words are comparison adjectives, which the framework authors never provide. Lightweight compared to what? Walnuts? Powerful? As in able to crush ants in a single stomp? Scalable? As in a three-step pet ladder as opposed to a bench? Full-stack? As in the stack goes to the moon or just up an average person's ass?

I understand framework author enthusiasm. Back in 2000 I wrote my own web framework during which I independently invented/addressed MVC, separation of presentation and logic, provided XML/XSLT web service processing infrastructure, all in the service of sending HDML/WML to phone handsets. I never OSS'd it because I assumed it was useless, even though I used it as a XML web service server, standard web app, portal server.

That was back in the day when Maverick, Cocoon, and Struts were relatively young, and my framework was at least as good as those early versions. But I didn't release it and I just adopted Struts the next time I had to do a web app, and took what I could from the old framework.

I think there is a basic lack of discussion by framework authors, and a distinct lack of cleanup being done by Sun. At the BARE MINIMUM, Sun should have an active MSDN-style resource home page that tracks the major projects, describes them and the problems they address, and a team of people tracking this stuff, even if it conflicts with their religion/coolaid/EJBs.

Then maybe we can keep Java's head start over dotNET, which is closing dangerously fast with standard features that are available in many java projects, but aren't being coalesced.

0 Comments:

Post a Comment

<< Home