Skip to main content

The Way It Goes

Posted by editor on September 29, 2006 at 6:32 AM PDT


Do great libraries come from ivory towers or rugged trenches?

Artima linked to yesterday's feature article Jini Beyond the Choir, which features an audio/video re-creation of Daniel's presentation from the 10th Jini Community Meeting. One of the comments says:

What Steinberg doesn't mention (at least in the brief excerpt quoted at Artima) is that the lack of a decent application to illustrate the value of the technology is exactly what was wrong with Sun's strategy on a number of fronts including JINI.

Imagine the yawns the would have resulted if Google had simply written a white paper (as Sun is so fond of doing) describing how an AJAX style application could be written instead of writing an interesting one.

It's unfortunate that the poster didn't think to actually watch the presentation (c'mon, it's only 13 minutes!), because Daniel does address this directly. He says explicitly that Jini needs "a good jump-start book and a killer app."

But that does raise a larger issue. For all the praise heaped on Jini, not a lot of people actually use it. Here's a troubling hypothesis to consider: what if, despite its technical elegance, it's not sufficiently grounded in real-world needs to be useful? What if it's not that it hasn't been promoted well, but that it doesn't solve the right problems, or solve them the right way? The idea is surely blasphemy to the Jini audience, which notes that Jini advocated software-as-service long before "service oriented architecture" became a buzzword du jour.

But let's think of this: would Jini be different if it had been created to fulfill a need in some other application, rather than being created as an end in itself. This is wildly speculative, of course: what the heck is this fanciful application that would need Jini-like functionality? But a knock on some Java technologies that come from big specs and big thinkers is that they try to solve too many problems, too early. And wouldn't that make as much sense as boiling oceans when you just need a cup of tea?

There's a camp that argues the best libraries are those that emerge from ad hoc solutions in doing other work. The first cut of servlets left programmers tending to put HTML in their Java code, a maintenance nightmare. With perhaps more than a little inspiration from ASP, someone took the approach of putting a little Java (or calls to server-side beans) in HTML and Java Server Pages were born. On the one hand, you'll find almost no developer arguing that JSP is a more technically elegant solution to serving up dynamic pages than Jini is to developing distributed applications. On the other hand, the number of developers who use JSP seems many orders of magnitude larger than those who use Jini.

And maybe adoption isn't the most fair metric to compare, but adoption tends to lead to support, documentation, help, community, etc. Being big often has a lot of advantages over being small. So bad, good, or great, popularity helps.

The idea of direct applicability is an interesting and appealing notion. In my other programming life, it's interesting to see how the "ivory tower" pieces of the QuickTime media library -- wired sprites, Flash support, a toy "VR" functionality -- are falling by the wayside as the technology is called upon to power Apple's media applications, which in turn now largely exist to sell iPods and (perhaps to a lesser degree) consumer Macs. Now the features that get added and supported are those that are directly used by real-world applications, the most important of which are written by Apple itself. Or look at the MPEG-4 standard, which has wildly speculative specifications for 3D VR-like functionality and an elaborate "scene graph" of interactive media objects... almost none of which is actually implemented or used in practice.

Do you think good libraries necessarily come from specific application needs, or is there still a future for libraries created by caveat, endorsed by standards bodies, and implemented in the hope that they'll suit your needs?


In Java Today,
the 0.6 early access release of Compute Server technology introduces APIs for the creation of standalone applications, support for more efficient use of grid resources, and enhanced debugging aids. Using the new standalone application APIs, developers can create applications for end users, to be run outside of the NetBeans IDE, that produce and package compute server application input for uploading to the grid, and/or process compute server job output that has been downloaded from the grid. Developers can also now limit the cpu-hours, and therefore money spent, executing a Compute Server job on the grid by specifying a new "Max CPU hours" threshold for job termination.

Wouldn't it be great if you could post updates to your client-side application as easily as you could commit a file to SVN? Or if you could get your customers to constantly update their running codebase to the latest and greatest, just like you do when you develop? Downrush is a Subversion-based client-side application installer/updater/launcher. It is backed by a binary-only repository and can be configured to update each individual file in an application to a particular revision, which means rolling back from a broken version is as easy as updating to a new one. The project is looking for developers, testers and people to give it a try in the real world

Java's well-being gets a harsh assessment from eWeek Security writer Larry Seltzer in Java's Momentum is Running Low: "Many lawsuits and real-world trials later, Java is still a major platform for server-side application development, but only one of many and no longer the one with momentum.
Heavily influenced by Java, Microsoft's .NET has more mind share where it counts. On the client, I can no longer say that Java is in freefall because it's closer to rock bottom. As a client application development platform it's far behind a wave of interpreted languages like Ruby and Python."


The latest java.net Poll asks "What do you prefer for enterprise Java persistence?" Cast your vote on the front page, then visit the reuslts page for current tallies and discussion.


In today's Forums,
Bill Snyder unveils SwingX
TransitionEffects:
"So a couple months ago I started playing around with the TimingFramework and Painters. Since there has been a little more discussion on the list lately about it, I checked in some code I had for TransitionEffects. TransitionEffects are just simple wrappers around the ImageEffects and TimingFramework. A webstart link yet is forthcoming, but for now the code is in my incubator (wsnyder6) folder. (woohoo my first commit to the incubator since I signed the JCA 3-4 years ago). And yes, there is a Ripple animation."

User bouteill has figured out the problem
Re: EAR Redeploy fails: Cannot delete existing directory:
"For everyone's benefit: After debugging this with Sun support we found the problem to be a unix soft link defined upstream of glassfish install. Apparently Glassfish undeploy logic is having reservations about deleting linked paths, so it just doesn't do it. The fix is to edit glassfish-home/config/asenv.conf to hardcode absolute/unlinked paths only. No shell variables allowed. No known work-around..."


Pete Morgan kicks off a new series in today's Weblogs. In
IP v IP. (Intellectual Property versus Innovation Protection) Part 1: Courts and Coders, he "attempts to raise Java programmers awareness of legal issues facing open source projects. Particularly the 'small guy'."

Evan Summers makes
A Case Against Uppercase, saying
"a hangover from C (macros) is the uppercase naming convention for constants."

Finally, in
Goodbye Major League Baseball and Hello Little League, John O'Conner writes:
"The MLB season is nearly over, but my local Little League is just starting to plan its next season. I'm on the League board, and boy do I have a job to do!"


In today's java.net
News Headlines
:

Registered users can submit news items for the href="http://today.java.net/today/news/">java.net News Page using our
news submission
form
. All submissions go through an editorial review before being
posted to the site. You can also subscribe to the href="http://today.java.net/pub/q/news_rss?x-ver=1.0">java.net News RSS
feed.


Current and upcoming Java
Events
:

Registered users can submit event listings for the href="http://www.java.net/events">java.net Events Page using our href="http://today.java.net/cs/user/create/e">events submission form.
All submissions go through an editorial review before being posted to the
site.


Archives and Subscriptions: This blog is delivered weekdays as
the Java
Today RSS feed
. Also, once this page is no longer featured as the
front page of java.net it will be
archived along with other past issues in the href="http://today.java.net/today/archive/">java.net Archive.

Do great libraries come from ivory towers or rugged trenches?