Sun Microsystems

Wake Tech

Your Guide to Java

Introduction
Syllabus
Assignments
Instructors
Samples
Tips
 

Your Guide to Java

A Brief History Of Java
Part 4

May 27, 1997

PC Magazine's first cover story on Java: Java environments and first-generation applications. Conclusion: The excitement of using Java office applications can not overcome limited functionality and notorious instability.

August 27, 1997

Sun CEO Scott McNealy interview in The Wall Street Journal: "By any comparison--fire, electricity, the wheel--the rollout [of Java] has happened at an unparalleled speed."

October 7, 1997

Sun announces lawsuit against Microsoft for breach of its Java license, citing the failure of Microsoft products such as IE 4.0 to pass Java compatibility tests.

November 3, 1997

Lotus announces eSuite WorkPlace (begun in January as Kona), a set of Java-based, platform-independent desktop productivity applets. The applets are designed for IBM's NC--the Network Station 1000.

December 16, 1997

Java is the big winner in PC Magazine's Technical Excellence Awards: JavaBeans and Visual Café for Java 2.0. James Gosling and the Java Team win the Persons of the Year award.

January 1998

Tele-Communications Inc. (TCI), the nation's largest cable provider, selects PersonalJava as one operating system for its digital set-top boxes, bringing Java full circle to interactive TV. But TCI also licenses Windows CE for the same purpose. Stay tuned.

Where JAVA Makes Sense

In the business world, Java makes some sense for deployment in extranets. Java's cross-platform promise means that theoretically you can create applications to use with your customers and suppliers and not have to worry about not having control over the environments they're running. The fact that Java applets are downloaded on the fly eliminates the explicit software installation process and extends their reach. But hurdles are high here, both because HTML can offer an even better cross-platform story than Java (though it's not interactive in the same way) and because cross-platform testing and debugging remain so difficult.

Another compelling use for Java may be in the middle tier of transaction-processing systems--not the servers or the clients but the "business logic" in the middle that actually describes the processes of filling an order or tracking a request. Java's platform neutrality means, theoretically, that you can write code once and have it run on any Java-enabled system. Although you may not need to run the applets simultaneously on different platforms, having the flexibility to move from, say, a Windows NT to a Unix server without rewriting code could be beneficial.

It also would be unwise to ignore Java's prowess as simply a good back-end development environment. JavaBeans offer a promising mechanism for building general-purpose business components that you can reuse with minimal modifications. And Java's simplicity (relative to C++) may improve programmers' productivity. In any case, whatever Java's pros and cons, there's no disputing that many programmers simply enjoy using it.

Another place Java may make sense is in highly vertical, single-purpose applications that are essentially custom-developed front ends to transaction-processing systems, often as replacements for traditional "dumb" terminal applications. This is the one area where NCs stand a real chance of succeeding in a big way. IBM, in fact, has made some sales into precisely this sort of market.

In these environments, a general-purpose PC may be unnecessary or even counterproductive. And it's worth noting here that the idea of NCs for the home is a nonstarter: Low PC prices negate any cost advantage, and network connections simply aren't fast enough to rely on remote storage.

What about embedded devices? Java has some high hurdles to clear here, as embedded devices are often limited in purpose and constrained in power and size. That tends to argue for dedicated hardware, especially given that platform-independence in this area is less crucial. But TCI has signed a deal to use Java in some of its television set-top boxes, and Nokia has signed a similar deal to use Java in cellular phones, so we may yet see progress in this area.

What It All Means

At this point, it's clear that Java technology holds promise--but also that Java has been overhyped and needs a reality check. Sun could help assure Java's success by focusing less on its potential to dethrone Microsoft and more on its use to solve real-world business problems.

Furthermore, Sun needs to make the Java Compatibility Kit public and allow third-party verification of compatibility claims. Such a public test would help catalyze more compliant VMs. And Sun needs to reassure developers investing in Java that future releases of the JDK will maintain backward compatibility with existing code. Ignoring backward compatibility has been a deal killer in the past. (According to Sun documentation, there's no guarantee that a JDK 2.0, for example, would support JDK 1.x programs.)

If you're in position to decide what to do about Java now, our advice is definitely to begin experimenting with it on a limited basis, particularly on the server side. You should document idiosyncrasies and develop a "safe list" of techniques that work reliably on all the platforms you need to support. Adhere to rigid object-oriented programming practices and design your objects' interfaces carefully, with a clear focus on reusability. Then if (or when) Java turns out to be the right solution for larger projects, you will have a solid foundation to build on.

Continued...


** PREVIOUS NEXT **