by Rich Kadel

Java: much more than a language

news
Jun 26, 19969 mins
Java SE

Java further defines itself with the latest product announcements

I recently returned from the JavaOne conference held by JavaSoft, May 29-31 at San Franciscoโ€™s Moscone Convention Center, and I have been on one heck of a caffeine trip! I have to admit that I went to the conference thinking Java was just a language (albeit a good one) with some nice networking and portability features. I left feeling like it had just become a way-of-life for me.

JavaSoft, along with a number of other eager vendors, showed us that Java has become a foundation for a reimplementation of just about every modern software practice today. Java is more than a language. Java is:

  • A virtual machine (the Java Virtual Machine, or JVM)
  • An operating system (JavaOS)
  • A computer chip (the PicoJava chip)
  • A Network Computer (NC), or just about everything you would need to build one
  • A Web browser (HotJava)
  • A Web server (Jeeves)
  • An API (a set of standard libraries thatโ€™s growing by leaps and bounds)
  • A Multimedia Infrastructure (including support for advanced 2-D, 3-D, animation, audio, video, and telephony)
  • A basis for a wide range of enterprise and commerce solutions, with state-of-the-art security, cryptography, database, component-ware, and distributed computing features
  • A library of 108 new Java titles (with more to come, apparently)
  • and a very popular clothing line. (I bought a couple of shirts myself!)

I attempted to sit in on as many keynotes and sessions as possible. Unfortunately, with the four session tracks being run in parallel (Technical, Design, Strategy/Business, and Industry), I couldnโ€™t attend them all, so I concentrated on the Technical sessions. Apparently, so did most of the other 6,500 attendees. The sponsors were forced to move the Technical track into the largest available room, one that could hold up to 5,000 people.

Improved Java APIs

JavaSoft has done a good job of positioning itself as the overseer for all changes to the Java language and API. They have expanded the API to include a broad range of new features, and they demonstrated the pre-release versions of most of these new capabilities. This might be a little bit of a slap in the face for companies that develop software libraries. JavaSoft has left very little to implement.

In my opinion, itโ€™s a good idea that the language developer is providing a standard set of libraries. And, it looks like JavaSoft might be doing it right. They are involving some of the experts from various industries to contribute in developing these standard APIs. Standard APIs are important for a number of reasons. As part of the standard release of the JDK, the APIs will be available on all Java platforms, which means I can count on them for my own applications. More importantly, I can integrate my software with Java software from another developer, and I can be somewhat confident that my new application does not import duplicate functionality from redundant libraries.

Itโ€™s unfortunate that JavaSoft has given us a taste of the icing, and then pulled back the cake. JavaSoft and their API partners demonstrated working pre-releases, but they have not made these advance releases available to Java application developers in any way. Most mainstream developers would be happy to get advanced copies in any shape, even if the libraries arenโ€™t entirely usable, just so the developers could become familiar with the APIs and begin to shape their ideas on how to best take advantage of them. This also allows developers to get products ready for immediate shipment after the official API release.

I talked to the JavaSoft license support people, and they admitted that this was a common request during the conference. They told me to watch for new announcements from their Web site.

Java Web Services

JavaSoft is also getting more serious about HTTP. That is, they are promoting both a network client and server. The HotJava browser has been upgraded to work with the latest version of Java, and the developers claim to be doing a significant amount of quality improvements and performance enhancements. While HotJava might not be your first choice in browsers today, it is written in Java, and will therefore run on any Java platform, unmodified. This makes an incredible amount of sense when you think of the architecture-unspecified Network Computers that are on their way.

Jeeves is the current name for an HTTP server from JavaSoft. The server is also written in Java, and will run on any Java platform. Jeeves also supports server plug-ins, known as Servlets. Servlets will implement additional protocols or other server functions not already built into Jeeves.

Both Jeeves and HotJava are designed and developed as modular components. By licensing HotJava, for example, a developer could take parts of HotJava and integrate them with their own application-specific Java components to build custom software with built-in networking based on Web standards.

Java Tools

A majority of the exhibitors at the conference were vendors of some form of Java development environment. The tools spanned a wide spectrum of purposes, from tools for developing Java applets without having to write a line of code, to full-scale Integrated Development Environments (IDEs) that support hard-core programmers in writing, testing, and debugging their new applets and Java applications. Here I mention just a few of the many exciting new Java tools that I saw.

Symantecโ€™s Cafe currently claims to hold the market share for IDE tools. This is the IDE that Iโ€™ve been using, and for what it does, I think Symantec did a good job getting it out as early as they did. Cafe provides browsing, Java-specific editing functions, and a good symbolic debugger with thread support, as well as the support of a just-in-time (JIT) compiler. Symantec has announced the next generation of Cafe, currently named Visual Cafe (no shipping date). Borland has also announced Latte, which should provide similar functionality.

Among some of the tools that require less programming are Jamba from Aimtech, and Mojo from Penumbra. Then there were Java libraries, for free or for sale, from companies like RogueWave. A number of vendors, including JavaSoft, have been working on database integration products, including JDBC (Java Database Connectivity) libraries, and tools for integration with object-oriented databases like ObjectStore from Object Design. Other vendors are integrating the Java Virtual Machine (JVM) into new environments, for instance as an embedded, real-time programming solution, or as a Microsoft Component Object Model (COM) component, so you can write a Java app and integrate it, via COM, into existing Windows applications.

There were also vendors helping to solve some more specific issues with the Java environment. Finjan Software provides an extended security manager that runs as an applet in your Netscape Navigator browser. (Apparently, there are a number of ways to get around Netscapeโ€™s applet security restrictions.) This product recognizes hostile applets that try to read data from your system, or affect it in other negative ways. It then either warns you, or immediately shuts the applet down.

The Network Computer

Probably one of the most important reasons that Java is destined to be the language of choice for most software projects is the Network Computer (NC) Reference Profile 1. This profile, still under development, will define a hardware and operating environment specification for a potentially inexpensive Internet browsing โ€œapplianceโ€, with Java support. NC-friendly platforms can include todayโ€™s PCs, Macs, and Unix Workstations, as well as TV set-top boxes, stand-alone diskless computers with no disk or mainstream operating system, and even personal digital assistants (PDAs).

The NC might have been good enough if it simply allowed the user to interact with HTML and CGI documents, but with Java on-board, the NC becomes a platform for sophisticated Java applets and combinations of applets. Without a disk, users could rely on a centrally located disk farm, probably available from the Internet Service Provider (ISP) on a cost-per-megabyte basis. (Of course, you would require the ISP to perform regular backups, and that the data be stored in a fault-tolerant manner, with encryption!)

JavaOS

JavaSoft has developed a Java-based operating system, called JavaOS, that can be ported to many different varieties of chipsets. JavaOS will, very likely, be the operating system of choice for many of the forthcoming NCs, because it will already support all existing Java applications, including the HotJava browser. Since NC developers can license HotJava for their own customizations, HotJava is well-positioned to be the core browser software for Java-based NCs. JavaOS is designed to provide the smallest and fastest version of the Java Virtual Machine (JVM), and is small enough to be burned into a standard ROM chip.

Conclusion

This article represents the products and ideas that impressed me the most while I attended JavaOne. There were many other products and announcements made, some of which I didnโ€™t even have time to hear about. Suffice it to say that Java is coming on strong. JavaSoft has also announced it will be providing a set of Java Development Services beginning July 31, that will include Java training programs, online technical support, and chat forums with senior engineers. Perhaps that will help many more developers become familiar with Java. I see Java as replacing the predominant programming languages of today. And if not, I see that as a personal advantage, because my software will be in Java, and it will therefore be the most portable software there is.

none Rich Kadel is a Senior Software Engineer and the lead engineer in charge of Java development at DTAI Incorporated of San Diego, California. He was the primary developer of PAL++, a large C++ software library with almost 300 C++ classes for building data- and graphically-oriented applications. DTAI Inc. provides software products and services including Internet development, training, and programming for Java, C++, client/server architectures, RDBMS, and X11/Motif for Unix and Microsoft Windows platforms.