Java HomeNewsJava-Based AppsDeveloper ToolsDeveloper AssistanceEducationCommunityEventsFeedback
Java Commentary Come here for fresh insights from the experts at IBM on how Java can unlock more power for your business.

(Previous articles are listed at the bottom of this page.)

On the Agenda: Running Scared; Java's Threat to Windows
Despite what Microsoft says, Java is clearly not an operating system. It is, however, a leveling technology that is opening the desktop market to competition and innovation. And that's Microsoft's real worry.


 
"Java [is a] thin, not very well-developed, not very well-tested, not a very complete operating system. Sun Microsystems's shtick is 'come on, give up programmer productivity, give up full features, give up great applications, but come along, pal, and tie yourself to our fat, but narrow little operating system that over time will really be like a decent operating system.'" -- Steve Ballmer, as quoted in Computer Reseller News, September 12, 97.
 

 

It seems that Microsoft is shifting their Java disinformation machine from fourth to fifth gear. Microsoft billionaire Steve Ballmer continues to prattle on about Java being a "narrow" operating system that might some day grow up into a "decent" operating system. But he's been misled. Java is not an operating system, and there are no plans to make it one.1

However, just because Java isn't an operating system doesn't mean that it won't create competition for Windows -- and this has Microsoft scared.

Java: The Term
First, a bit of background. The term "Java" is broadly applied to several different technologies, and it's important to understand each individually. Java refers to:

  • A programming language, somewhat similar to C++.
  • Class libraries used by Java programmers to accomplish tasks such as building graphical user interfaces, accessing the network, or solving complex mathematical equations.
  • The Java Virtual machine or JVM, that executes programs written in the Java language and compiled into Java "bytecodes." (Languages other than Java can be compiled into Java bytecode and executed on a JVM, but that's beyond our topic.)

Class Libraries: The Key to Microsoft's Fear
An operating system is a layer of software that acts as a liaison between a computer's hardware and the applications running on it. Each operating system supplies a set of APIs that applications use to access hardware function such as drawing on the screen or writing to disk. Unfortunately, each operating system's APIs are different, which means applications written for operating system can't run on another operating system.

This is what Java is trying to fix. Java provides a consistent, thin API that is layered above each operating system's API. Java's API layer is thin because it simply maps the platform-independent Java APIs into the appropriate platform-specific APIs provided by the target operating system. Because the Java API is consistent across platforms, applications written in 100% Pure Java can be run on any computer supporting Java.

The idea of platform-independent class libraries is not new. At their inception, most languages have such libraries. For example, much like Java, C provides libraries that allow applications to access the network, read and write to the file system, and perform mathematical functions.

However, over time, specific language implementations become more intertwined with particular platforms and their inherent peculiarities. When this happens, the language's libraries begin to differ from platform to platform, and application-portability is lost.

The question of libraries is important since Microsoft has long controlled developers by locking them into its proprietary libraries that are tightly-bound to the Windows operating system. In contrast, the Java class libraries are platform-independent, and available on many operating systems. If application programmers start using libraries that aren't tied to Microsoft systems, Microsoft's hegemony is threatened. This is their worst nightmare.

Now when we return to the question of whether or not Java is an operating system, it should be clear that Java is not an operating system. Yet while Java is not an operating system, it is still a threat to Microsoft. Java is threatening because it allows other operating systems to compete with Windows on a level playing field--a field where applications are portable, and the best operating system is the one that runs the applications the best. This would be a dramatic departure from the days when, for most applications, Windows was the only game in town.

From a customer's perspective, competition is good, increasing innovation and reducing prices. Any technology that increases competition is good for customers; conversely, any attempt to reduce competition hurts customers. From Sun's public statements about their lawsuit against Microsoft, it appears that Microsoft is attempting to transform those platform-independent libraries into Window-specific libraries, further locking in applications developers, and reducing choices for customers. Can this be good?

The JVM: Welcome Security
Yet, Steve Ballmer might contend that he was referring to the JVM, not the Java class libraries, when he asserted that Java is an operating system--he'd be wrong again, but he could assert that. Like the Java class libraries, the JVM runs on top of whatever operating system happens to be available, and simply executes the compiled version of Java programs. By inserting the JVM layer on top of the operating system, the Java environment is able to prohibit applets from wreaking havoc on your computer. Since Windows provides no such security, this is a welcome addition. (Downloading ActiveX over the web is like bungee jumping from the Empire State Building--without the cord.)

By now it should be clear that Ballmer doesn't know what he is talking about. Java is clearly not an operating system. Java is a leveling technology that allows customers to purchase operating systems based on price, cost-of-ownership, reliability, etc., not merely because it's the only system that runs a given application. In short, Java isn't merely an open technology, it's an opening technology, opening the desktop market to competition and innovation. Poor Microsoft will have to learn to compete on quality.

[1] JavaOS
Sun does offer an operating system specifically tailored to run Java applications well: JavaOS. JavaOS is a tiny operating system aimed primarily at networking computers, hand-held devices (such as phones) and other resource-constrained environments. So, while JavaOS competes with WindowsCE, it's not intended to compete with the full-blown Windows operating systems.

 -- David Kaminsky, Java Team Lead, IBM

The Direct Path to Nowhere
David Kaminsky, an IBM Java Team Lead, makes the case why customers who buy into Microsoft's J/Direct strategy limit their future options and find themselves on the fast track to high-cost computing.

So Microsoft hates Java; what's changed?
Simon Phipps, an IBM program manager for Java technology, helps you sort through Microsoft's shifting position on Java.

The Case for 100% Pure Java
David Kaminsky explains why "100% Pure Java" is more than just a slogan.

Standardized Java: An IBM Perspective
IBM offers its perspective on the current initiative to make Java an international standard.

Is Java Secure?
Simon Phipps, an IBM program manager for Java technology, addresses one of the most often asked questions about Java.



JavaTM is a trademark of Sun Microsystems, Inc.

Other companies, products, and service names may be trademarks or service marks of others.

Copyright    Trademark

IBM HomeOrderEmployment