Recent top five:
Java.next -- Four languages that represent the future of Java
Blogger Stuart Halloway has begun a series of posts on trends that point to the future of the Java platform. In his first
post, he compares Clojure, Groovy, JRuby, and Scala -- four wildly different languages that nonetheless all play together
in the JRE. Find out what unites these languages and what they can tell us about the future of Java-based development ...
| Enterprise AJAX - Transcend the Hype |
| Memory Analysis in Eclipse |
| Oracle Compatibility Developer's Guide |
| Memory Analysis in Eclipse |
With the sweltering L.A. heat from August 3 to 8, attending all of the announcements, meetings, and other Java-related events proved to be a full-time, exhausting undertaking. If the prominence of Java at this year's conference serves as any sort of foreshadowing for next year's, you can expect to see a wide variety of Java-based solutions at Siggraph98 in Orlando, FL, next July.
A lot of ground was covered in Java Media over the six days of the conference. Given that much of the audience at Siggraph is involved in three-dimensional graphics, a large part of JavaSoft's effort was spent on evangelizing the Java 3D API. Expect to see a more technical article that compares the newly specified Java 3D API with OpenGL and VRML in an upcoming issue of JavaWorld.
JavaSoft made a major press release during Siggraph announcing the 1.0 Java 3D specification release as well as early access releases of the Java Media Player and Java 2D APIs and the Java Sound Engine. See the Resources at the end of this article for more information on this JavaSoft announcement and other Java-related activity at Siggraph.
JavaSoft hosted a full-day introductory course on the new Java 3D API. This followed the release of the Java 3D 1.0 specification to the public by just four days. (Does anyone get the idea that JavaSoft was rushing to meet a deadline?) Though JavaSoft showed demos running on both Solaris and Windows NT machines, currently there are no publicly available implementations.
The course was noteworthy in part because it was aimed squarely at graphics programmers and others who might not already be intimately familiar with the Java language and runtime. This tactic struck pay dirt for JavaSoft: Throughout the entire day of the course, the meeting hall remained near its capacity of 750 people.
The first part of the class centered on the general benefits of Java that we have all come to know and love from Sun's marketing activities -- namely, "Write once, run anywhere," and so on. It also included a brief introduction to the Java 3D API and its basic structure.
The other major sections of the course included:
Fundamentally, Java 3D is a graphics runtime that uses a Java-based scene graph, or a hierarchical set of relationships between objects in a three-dimensional scene, to render 3D graphics. As a higher-level API, Java 3D has been designed to be a common subset of all 3D graphics API functionality available in several major pre-existing 3D APIs. This gives Java 3D implementors flexibility in implementing on top of well-established APIs.
JavaSoft's current Windows and Solaris implementations of Java 3D in turn use OpenGL as their interface into machine-specific functionality. JavaSoft also anticipates possibly providing implementations of Java 3D built on top of Direct3D for Win32 and QuickDraw3D for MacOS at some point in the future.
The emphasis on its runtime nature was constantly pointed out by JavaSoft personnel, largely in response to questions by Virtual Reality Modeling Language (VRML) supporters. Whereas VRML is predominantly a file format for 3D scene graphs, Henry Sowizral of JavaSoft explained that Java 3D is a runtime API and system for building and using scene graphs in Java. He illustrated this point with an example showing that though one might write a computer-aided design (CAD) program using Java 3D, this program might output models into VRML for use on the Web or for importation into other modeling or CAD packages.
There are many other differences between Java 3D and VRML. Nonetheless, the basic concern that most people seemed to have was that Java 3D was an attempt to preempt the pre-existing and widely deployed Web standard of VRML. The tension came to a head when someone asked point blank which of the two they should use if they had deadlines to meet this year and needed to employ a 3D graphics project that used Java to manage the scene. The answer from JavaSoft's featured Java 3D speaker: "Don't even think about using Java 3D in a product this year."
An interesting way to hedge your bets did emerge, however. JavaSoft has already built a VRML 1.0 and 2.0 loader to read in VRML files and build up Java 3D scene graphs from them. Indeed, most of the really compelling content that was demonstrated running in Java 3D was actually authored by others in VRML and then read in by JavaSoft using their loader. JavaSoft has made no public commitments to ship its VRML loader, but a source at JavaSoft agreed that it would make good sense to provide this tool in some form for content creators to use to import their VRML content into the Java 3D runtime. Because of this, building content in VRML seems to be the safe approach -- whether or not you ultimately decide to move that content into the Java 3D runtime.
The questions got more intricate at a JavaSoft-hosted Java Media birds-of-a-feather session. (Such sessions are called SIGs instead of BOFs at Siggraph.) JavaSoft used this forum as an opportunity to also introduce attendees to several other Java Media APIs, with presentations on Java 2D, Java Advanced Imaging, Java Media Players, and Java Sound.