|
Your Guide to Java
What Is Java, Really? To understand what Java can really do, it's important first to grasp what Java really is. On one level, Java is a programming language. But just as Windows is more than just a graphical user interface, Java is more than just another way to write code. Still, it makes sense to start there. The Java language is superficially similar to the wildly popular C++, so C++ programmers generally find it easy to learn Java's syntax. And as our story "Java Development Packages" reveals, Java development packages mirror the RAD approach popularized with C++. But unlike C++, Java is object-oriented from the ground up. This helps programmers enforce good object-oriented practices, which leads to more maintainable code. As with C++ and C, much of what is usually lumped together as Java-the-programming-language consists of runtime libraries. These libraries provide a standard set of facilities for manipulating the user interface, communicating across a network, and so forth. Consistency in the runtime libraries is important for achieving the "write once, run anywhere" claim and was in fact the focus of one Sun lawsuit against Microsoft. (The lawsuit alleged that Microsoft failed to provide two Java runtime libraries--RMI, for remote method invocation, and JNI, for Java native interface--and that Microsoft had engineered subtle but impermissible changes into the behavior of core Java libraries.) Indeed, in late 1996, Sun launched its 100% Pure Java initiative, which examines each "Java product" against a tightly guarded certification process. Products that pass are labeled as 100% Pure Java and carry the guarantee that they use only standard Java features and should, theoretically, run on any properly implemented version of Java. Sun currently lists more than 120 such products at its 100% Pure Web site. But there's one hitch: No widely used Java VM meets Sun's compatibility requirements. Netscape pulled the Java logo from its browser in late 1997, because its implementation was not fully compliant; Sun and Microsoft remain embroiled in legal battles over Microsoft Internet Explorer. Java as a New Platform Java and the Java VM together provide a set of services that Java programs can rely on, regardless of the underlying hardware and OS. In this respect, Java has become positioned as a new platform--a target environment for applications. Why does the world need a new platform when Windows is clearly the PC platform of choice? For one thing, although Windows is dominant, it's hardly universal. The significant potential benefit is the ability to write code that will work on a variety of systems--especially in an extranet, for example. In addition, any new platform has the advantage of starting with a clean slate technologically. The Windows/Intel PC architecture, ubiquitous as it may be, is hobbled by its heritage, which stretches back to the 8088 processor and DOS 1.0, introduced with the original IBM PC in 1981. Of course, this hobbled heritage is also Windows' biggest strength when it comes to software compatibility. This is also why Java will never replace Windows as a general-purpose desktop OS: There's simply too much existing investment and inertia in the Windows platform and too little to be gained by rewriting all that software. Indeed, today's Java applications generally don't provide compelling alternatives to existing, highly refined Windows software. For example, Corel's early attempt to take its Windows applications and simply make them Java applets (Corel Office for Java) didn't work, because Windows applications don't just simply translate into some lighter versions of themselves. Java developers are finding that Java applications work better when they are put together as bits and pieces, as in Lotus's eSuite.
|