« MetaGraph: Domain knowledge v RDF | Main | Hip Priest And Kamerads »

Java unhinged

Tim Bray talks about Sun needing to build "Back-door Tech". Ok, so here are some suggestions for the Java back door:

  • Get behind Jython.
  • Tighten the J2EE/JCP feedback loop.
  • Provide leadership for web frameworks.
  • Get the SCSL out of the way.
  • Support the Eclipse consortium.

Get behind Jython. Here's a major theme of open source innovation in Java over the last 3 years - use anything but Java for app coding. That suggests a significant fraction of Java geeks are chomping to get off Java for someting more flexible and 'ready to hand'. The natural choice is to run fully featured scripting languages on the JVM (not Bizarro-XML roadkill like Jelly, or JSP+EL). But here's a very important thing - we don't need new language development*. Jython is sitting there, ready for prime time. In the meantime, Microsoft, with one smart guy for pay, have the potential to make scripting mindshare on the JVM dead on arrival. IronPython is why. The enterprise computing upgrade path for millions and millions of VB.NET and ASP.NET developers is probably going to be IronPython. Visual Studio support will surely follow. Game over?

Tighten the J2EE/JCP feedback loop. In Tim's terms, the J2EE has no back door. It took a ong time for the JCP to acknowledge that those in trenches knew EJB and other J2EE doodads had issues in a way that couldn't be papered over with visual tools and enterprise patterns. Huge pressure bubbled up from the developer community in the form of OpenSymphony, Spring, Pico, Hibernate and bestselling books like Bitter Java and Bitter EJB. This lack of feedback seems to result in disdain for J2EE as a development platform and produces one reactionary OS project after another addressing the same issues (the web frameworks situation is so bad it's getting its own section next). Some of these projects are valuable, but some result in buyer's regret and legacy issues if the project dies as the leads go off to do something else cool without leaving a community behind them (Hani Suleiman deserves immense credit for highlighting this problem). Today, a significant issue is how the J2EE learns to fits with integration styles where the Web, documents, messaging, interop-uber-alles and most importantly, tight budgets, dominate.

Provide leadership for web frameworks. The Java web framework situation is so stupid, it's not even wrong. Sun, taking a leadership role and focusing the community on the goal of adopting a single web framework would be wonderful; Struts wasn't quite it, and JSF looks like a web framework that's in denial about the web. I think for Java to be competitive with the LAMP stack, Isolates and full support for scripting are prerequisites, so we might have to wait for a while.

Get the SCSL out of the way. Sun's SCSL and the general approach to open code is confusing. Very confusing. And absurd - witness the Geronimo committers typing in the J2EE APIs by hand because of distribution issues around licences. SCSL is very much front door thinking; no developer wants to be distracted or stifled by something like that. For Jini and JavaSpaces, the licence seems to be actively harmful in terms of code sharing; the outcome is that one of the most exciting platforms for the service oriented style is a hacker unfriendly one.

Support the Eclipse consortium. I understand this is a contentious view, but the Eclipse community and user base is thriving. Arguably, if Sun vanished tommorrow, this is where Java would end up - that's how strong this community is.

* Regarding Groovy then. I've very happy that Groovy exists as it attracts the right kind of focus, but sad that it had to be invented. I also think that it will take a lot longer than expected to finish Groovy - good language design is too hard to just dash off in a couple of months. In one sense it's the wrong answer to the right question.

August 22, 2004 03:35 PM


Robert Sayre
(August 22, 2004 04:44 PM #)

wrt to web frameworks, Sun should steal something back from MS and copy ASP.NET. Once you get past all the drag and drop Visual Studio gunk, it's a much nicer place to be than any Java web framework, though I think Cocoon is really cool.

Mike Kozlowski
(August 22, 2004 04:52 PM #)

I haven't used JSF (I moved over to the .NET world before it was released), but from what I've seen of it, it looks like it is the Java answer to ASP.NET.

And for all its many virtues, "in denial about the Web" is a good description of ASP.NET, too.

Bill de hra
(August 22, 2004 07:58 PM #)

"Sun should steal something back from MS and copy ASP.NET."

I think Mike's right about JSF here (you could prehaps make a similiar argument around Portlets and MS SharePoint/CMS), but what they seem to have stolen is the idea of drag and drop UI rather than a sane architecture.

My main beef with the current crop of 'web' frameworks is the obsession with MVC and Object autowiring instead of simple stuff that works (SiteMesh and Tiles). It doesn't seem to be any easier to re-org a Java/JSP site than it was 3 years ago. Skinning at least is finally being understood as a non-problem (use CSS).

I think bringing MVC to the Web has turned out a bit like bringing Objects to the Web; it's a disease, not a cure.

Gabriel Mihalache
(August 22, 2004 10:46 PM #)

We should make a distinction between needing reusable "panels", usually representing entities or an entire object model, which we'd like to embed, reuse and restyle, and the "paint-and-discard" data viewing JSPs we do most of the time.

A stateful form, with complex model reading requirements should be tackled differently from a JSP dumping a database table on screen.

For statefulness and other interactive stuff we should be ok with JSF and its forthcoming components. For simple drag-and-drop-table-to-page we can use DreamWeaevr MX 2004 which supports JDBC + JSP. And there you have it...

(August 22, 2004 11:35 PM #)

Eclipse is an attempt to subvert Java. There's nothing more un-Java than SWT, where you have to code differently for every platform. Windows ends up with full support, linux with halfway-decent support (only because IBM is behind it) and every other platform is ditched. Try running Eclipse on a Mac and compare to how well it runs on Windows sometime if you don't believe me. No, Eclipse is not the way forward for Java. I'd much rather see this "community" put its weight behind Netbeans. Sure, 3.x sucked, and sucked hard. However, 4.0 is looking much better and it is at least pure Java.

Asbjrn Ulsberg
(August 23, 2004 10:52 AM #)

Helma http://www.helma.org/ is a nice JavaScript environment for the web that gives Java a bit edge. On the web. Helma is actually a good competitor to PHP, but is not available as an Apache module (although Mod-GCJ http://mod-gcj.sourceforge.net/ is going to solve that matter eventually).

Else, I have to agree that JSF and ASP.NET are both in denial about the web. ASP.NET is going to keep its framework, but get more standards-friendly in the next version. I'm not sure what problems JSF suffers from in that area.

Carlos E. Perez
(August 23, 2004 04:25 PM #)


I agree with many of your suggestions, here's my additional take:


Also, if language design were so difficult, why don't we just make Scala more script like? After all, aren't the Scala folks experts on Language design?


Bill Seitz
(August 23, 2004 09:16 PM #)

Is the Python web framework situation much better?

Mike Kozlowski
(August 24, 2004 02:38 AM #)

Asbjrn, there's no random project you can point to that'll make Java's framework situation any better -- the problem isn't that they don't have enough of 'em, it's that there's a giant pile, and you have to pay serious attention to have any idea what to use. J2EE? Straight JSP? JSTL? JSF? Struts? Tapestry? Cocoon? Helma? Well.

As for ASP.NET's non-Webbiness, it doesn't really have much to do with standards, it has to do with the programming model, which features stateful, event-driven controls. You can't have stateful, event-driven controls if you're really thinking in Web-centric terms; nevertheless, having stateful, event-driven controls is awfully handy a lot of the time.

Carlos, the Scala folks may be experts on language design, but so were the creators of ML. And like ML, Scala is a language that sounds interesting in theory, but triggers the "Well, ew" scale in practice. Of course, I also dislike Python, so maybe I'm just picky.

Trackback Pings

TrackBack URL for this entry:

Listed below are links to weblogs that reference Java unhinged:

» Bill de hra on why John Sequeira never got overly excited by Java from Amped::Technology
Okay, that wasn't the actual title, but it definitely could have been. [Read More]

Tracked on August 23, 2004 02:12 AM

» Backdoor dynamic languages from Ted Leung on the air
One of the things that Tim Bray mentioned in his essay on back door technologies was that Sun should get serious about dynamic languages. He went on to say I totally don’t see any reason why we shouldn’t try to become a world leader in thi [Read More]

Tracked on August 23, 2004 08:26 AM

» How to improve Java: Jython, Community, Framewors, licensing and Eclipse from Developer.e-xact.com
All these suggestions sound great if Java is to get some of the momentum it has lost because of Python, PHP, Perl, etc. [Read More]

Tracked on August 27, 2004 07:45 AM

» JCP and How to Make Money on Royalty-free Licenses from Radovan Janecek: Nothing Impersonal
There were many discussions on what Sun should and should not do to keep Java alive and exciting. Let's not be sentimental. Java is inevitably slowly dying mostly because of JCP. Let me give you one example: In order to implement Java APIs like SAAJ, J... [Read More]

Tracked on September 20, 2004 12:12 AM