ONJava.com -- The Independent Source for Enterprise Java
oreilly.comSafari Books Online.Conferences.

advertisement

AddThis Social Bookmark Button

What's Hot, and What's Not

by Mike Loukides
06/15/2001

Michael Loukides reports from Sun's 2001 JavaOne Conference, June 4 - 8, in San Francisco, California.


The real point of the JavaOne Conference is to figure out what's hot and what's not. Here's a quick summary.

Wireless devices are really here, at last. I couldn't figure out why Motorola was being so quiet, since they're actually shipping a phone that runs Java (the i85), and were even selling it at a great price ($125) to attendees. (O'Reilly Java editor Bob Eckstein bought an i85 a few weeks ago, and he highly recommends it.) Nokia was much more visible. They have some great products coming out in Europe and early next year in the U.S. The big problem with the i85, of course, is that you can't yet download your Java applications to it. The software for downloading applications will be available later this year.

Jxta is still very new, but very much in evidence. Tim O'Reilly got the only applause I heard at any keynote (all right, I blew off Larry Ellison on Thursday-I figured he wouldn't show) for saying that Jxta was Sun's attempt to figure out "what peer-to-peer technologies nobody should own."

eMikolo had a really interesting demo that showed the potential of P2P (the only interesting demo, I might add, that made it onto the main stage). They were creating a real-time video feed by striping the feed from a number of peers.

In a traditional client/server framework, all the data comes from a single server, which quickly becomes a bottleneck as you add more users. In a P2P environment, the server starts the initial feed; but as users are added, they download their content from other users, possibly many other users in parallel. Consequently, the more users you have, the better the performance is. There were a dozen or so companies demonstrating fairly significant P2P applications.

What about Web services? Everyone was talking about Web services. Unfortunately, a lot of the people talking about Web services didn't have much to say. The talks I went to about services tended to be generic ("Here's how to create a Web services architecture.") rather than specific ("Here's how you do this.")

I did like a talk introducing JAXR, a common API for working with different kinds of directories for Web services. The API was sophisticated enough to let you get at the more powerful of some registry services, and it didn't sacrifice advanced features to a "least common denominator" approach.

Bottom line: Web services aren't "cooked" yet; they're in the process of being cooked. It's a great time to learn about them (particularly the whole ebXML/SOAP/UDDI/WSDL constellation), but you still have to look a bit to find first-rate content.

Monday's keynote speaker made the surprising claim that Java is the leading language for application development on Linux. I found that a little hard to believe (though I'd like to believe it), but I asked a number of people, and the answer was, "Sure, it's all enterprise applications, servlet-based Web applications, etc."

Frankly, I think Java solves lots of problems for the Linux community, and I'd like to see it much more widely adopted. There was a good technical talk Friday morning about the future of Java on Linux. The most serious problems, concerning I/O and threads, are being addressed by the new Java release (JDK 1.4, aka "merlin," now in beta) and improvements to Linux's thread facilities in the Linux 2.4 kernels. That's important, since Java seems to be the language of choice for many consumer products that run Linux internally (for example, the Nokia set-top box, or the PlayStation 2).

A number of talks discussed new features in JDK 1.4, now in beta and expected out towards the end of the year. Of these features, the most important is probably the new I/O facility. It adds a number of features that have been sorely lacking: memory mapped files, asynchronous I/O, and regular expressions. (The latter doesn't really belong in the java.nio package, but that's where they put it.)

I've never understood why Java didn't have regular expressions from the beginning. The mapped file and asynch I/O extensions will make it possible to build truly high-performance Java applications. One demo showed a flight simulation on JDK 1.3 and 1.4. On 1.3, it was slow and jerky. On 1.4, because of the new I/O features, which can interact directly with a graphics card, the simulation ran smoothly and much faster.

Other new features are the addition of assertions and generics to the Java language, a number of improvements in Java 2D (including a new print service API), and a logging API. Swing has some new components, and the focus and drag-and-drop facilities have been redesigned. A number of important APIs have moved to the core from being extensions.

These changes aren't as exciting to me, but they are important: It is good to know that Java will always ship with the JCE, JSSE, and JAAS (cryptography, secure sockets, and authentication), along with the complete set of XML tools (JAXP).

Vendors of various voice-related products were out in force. Nuance was there; so was Voxeo. One of their developers gave an excellent talk about building voice-user interfaces, and demonstrated an extremely interesting rapid development environment for voice applications. The application allowed you to develop a voice application graphically, writing the prompts and responses, and leading the viewer to through the application.

After building the application, the Voxeo developer uploaded it to Voxeo's service, then called the application on his cell phone; we heard the prompts and watched the log as the call proceeded. Perhaps the most impressive part was that he changed the application at the last minute, and happened to introduce a bug. It took only a couple of minutes to fix the bug, upload the application to the server, and call it again.

There was some good discussion in the halls about the Java Community Process (JCP). On the whole, the system seems to be more working than broken, particularly compared to the official standards bodies that are subject to the whims and delaying tactics of vendors. (Sadly, even the IETF is suffering from this phenomenon, and the W3C is-well, the less said, the better.)

A couple of valid criticisms were made, though. Sun certainly has too much involvement. Java is now able to stand on its own two feet, and doesn't need a benevolent dictator in charge of things. The JCP would probably work just fine if Sun were involved like any other participant.

Someone mentioned that the JCP has never rejected a Java Specification Request, or JSR, (that is, told someone, "No, Java doesn't need that.") and that many of the JSRs are just companies trying to standardize their product. I can't vouch for the internal history, but a quick scan of the 136 JSRs shows that there's some merit to the claim that the process is attempting to standardize things that probably shouldn't be standardized, things that are really just some vendor's technology in sheep's clothing.

It would be easier for the JCP to be selective if it were run by a truly independent body. Right now, Sun certainly can't afford to have vendors saying, "We submitted a JSR, and Sun squashed it."

JavaTV is the surprising "stealth winner" among the APIs. When it first came out, I would have picked it "most likely to go nowhere." But JavaTV has slowly been picking up steam in critical places: It's part of the DVB standard, part of the MHP standard, and implemented in a number of set-top boxes. (Is that deja vu?) Given the general level of interest in the device space, I think we'll be hearing more about JavaTV in the next few years.

The big question is: Does it solve any problems people really want solved? I'm not the person to ask-I don't watch TV much. There was an interesting demo (run, I think, by Nokia), in which they showed how you could use a set-top box running JavaTV to order some records. I'd just as soon do it online, but if your life is focused around the tube, you might think otherwise. At any rate, there's clearly something happening here.

That's all for now. There's obviously a lot that I missed: There were many talks about Jini, which is certainly alive and kicking (despite premature reports of its death). Apple was out in force. I didn't get a chance to talk to them, although I think that MacOS X is a very important operating system, both for the future of UNIX on the desktop and for the development of Java applications. There are no doubt many important new ideas, APIs, products, and vendors that I've left out. My apologies to all who I've neglected.

See you next year.