Sun Microsystems

Wake Tech

Your Guide to Java

Introduction
Syllabus
Assignments
Instructors
Samples
Tips
 

Your Guide to Java

A Brief History Of Java
Part 2

December 7, 1995

Microsoft announces it will license Java. Microsoft's intent to optimize Java for Windows sets the stage for a long simmering feud that boils over two years later.

December 13, 1995

Symantec licenses Java and releases the first Java development environment for Windows 95 and NT, Symantec Café, an immediate success.

December 19, 1995

Java wins PC Magazine's Technical Excellence Award. Reason: It gives developers freedom, a streamlined language, and versatility.

January 9, 1996

Sun forms JavaSoft to develop Java-based products and work with third-party developers.

January 23, 1996

Sun ships the Java 1.0 programming environment (JDK 1.0). Includes Java Applet Viewer, Java Compiler, and Java Virtual Machine for the first time.

April 9, 1996

PC Magazine reviews JDK 1.0: It shows promise because of its cross-platform capability, but as a language and development environment, it is "as cafeteria coffee is to Italian espresso."

May 29, 1996

More than 6,000 people attend the first JavaOne developers' conference. Corel announces its intent to develop the Java office suite, with Java versions of WordPerfect and Quattro Pro. The plan ultimately fails.

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.

Continued...


** PREVIOUS NEXT **