Faster, Faster
Perhaps the software industry does learn, eventually. If nothing else,
major software houses are perhaps inspired by the
I-was-here-first successes of the Web industry.
Or perhaps they have an eye on the successes of systems developed
recently that have been characterized by voracious demand for feedback
from the user community, and frequent and lavish updates by organizers.
Sun certainly seems to be paying heed to the new rule: "Update early
and often." Obviously engaged in a serious effort to deliver promised Java
features as fast as conceivably possible, Sun lets nary a week go by without
releasing another version of an API or another addition to its Web site.
This past week has seen the release of substantial new documentation for
no less than four major
APIs, a second developer release of the Java Foundation Classes, and
a complete overhaul of the
Swing/Java Foundation Class documentation.
Of all the much improved new Swing documentation (which, in case you
haven't been following
along with us, has been preoccupying us over the past several issues), we
found the new overview
page to be particularly rewarding in terms of clarity and brevity.
Most welcome of all, though, is the newly added Swing
tutorial--even as rough as it is, it's still an indispensable read
for really understanding how the Swing components work and how they're
put together.
Another must see is the UI
screenshots page, demonstrating Swing's much-touted UI switching
capabilities
to considerable effect.
It's probably prudent to take a brief look at a few of the other updated
or newly released APIs. We've mentioned Java3D in the past; this past
week marked the release of the 1.0
specification.
My examination is that of a software expert and
a 3D layman, but in as much as I understand it, I am quite impressed by
it. The system rationally addresses performance concerns and does an excellent
job of leveraging Java's overall clarity and simplicity of structure. Not
that you could call this API simple--given its size and inherent organizational
(not to mention mathematical) complexity, this is easily one of the most
complex and sophisticated API chunks to date.
The overall approach seems to be the creation of something much more
than just a display system. Our first few passes through the
API itself reveal a structure for creating a fully functional 3D object
environment, with three-dimensional objects that contain extensive display
state; potential for independent, internally, and externally interactive
or time-based behaviors; three-dimensional sounds; collision detection;
and multiple rendering modes supporting different degrees of tradeoff between
predefined behavior and optimization of the display system. This is no
small feat. In fact, it's a landmark achievement in three-dimensional
graphics software.
Another rapidly developing system (set of systems really) that it'd
be a good idea to keep your eye on is the
Java Media Framework. Another example of Sun taking its role as Java
standards maker to new heights, this is, much like Swing's global
definition for Undo functionality, an example of system architects
advancing standardization among applications in new directions.
The JMF is ostensibly for organizing and synchronizing the bidirectional
flow of "media" within Java applications. What we see when we look at the
spec is a growing system for managing multimedia information. If a
RealAudio or VDO
video codec were to be incorporated into Java, it would be here, as a "media
source," where it could be attached to and controlled by a "player," and
tracked with "media events."
There are also indications of support for video and audio input systems, and
thus, ultimately, for things like audio- and videoconferencing.
Unfortunately, broken links in the API prevented
us from a thorough examination of this system. In any case, it's
very ambitions, and as we couldn't help observing over and over again while
we were reading the
overview, it's very much the sort of thing that most multimedia application
developers have become accustomed to writing themselves over
the years. For Sun's stab at a generic multimedia system to gain acceptance
would be a major coup for JavaSoft.
Everyone knows that most programmers spend most of their time rewriting
the same basic utilities, all the different versions of which end up quite
incompatible and, on the whole, very expensive. Of course, for everyone
to use the same standards for getting things done, these standards have
to be the best available for handling everybody's individual
predicaments--or at least a very, very good compromise for all the parties
involved.
Until now, of course, no one has even attempted so many ranging feats
of high-level software standardization, but in many ways, as we've said
before, the Java team seems to have an unparalleled degree of organizational
panache.
Certainly, if the whole community of Java developers takes up
even a fraction of the framework provided for them, it will have been a
move unparalleled in recent software engineering history. Of course, all
of these new APIs are still ultimately some distance away from everyday
use. Moreover, the Java industry itself is still an unknown quantity, even
now waiting to see what it will become.
As usual, hoping for the best and prepared for the worst, we're waiting
right along with it.