Java HomeNewsJava-Based AppsDeveloper ToolsDeveloper AssistanceEducationCommunityEventsFeedback
Java Commentary
On the Agenda: The Direct Path to Nowhere
While Microsoft touts J/Direct as the answer to all problems, customers who develop or purchase applications that use it limit their future options and reduce application portabilility-even among Microsoft platforms! That's a fast track to high-cost computing.

As every grade school child knows, the shortest distance between two points is a straight line--a direct path, you could say. That's also the theory behind Microsoft's announcement of their J/Direct technology. By allowing customers to access the Win32 APIs from Java, J/Direct gives programmers an easy path for developing Java applications. Or so they say...

As Einstein demonstrated in his work on relativity, the shortest distance between two points isn't necessarily what one perceives as a straight line. Mass can warp space, causing deceptive appearances.

In the Java world, developers needn't worry about curved space warping perceptions. Instead, the problem is the unpredictable nature of technology itself. What appears as a straight and simple path today won't necessarily be such an easy path tomorrow.

In fact, this is one of the problems that Java targeted initially. Java offers a uniform platform that is supported across operating systems. By using this standard meta-platform--a "virtual machine" in Java parlance--developers and customers alike avoid bets on any particular vendor's technology. By using Java, the developer bets on the Java technology. If Windows continues to dominate the desktop market, then 100% Pure Java will continue to work well on Windows. If not, Java will work on whatever follows or coexists with it. Migration will be unnecessary.

J/Direct runs counter to this trend. By using J/Direct, developers bind themselves to a single platform--Windows*--and, more specifically, to the versions of Windows that support the J/Direct extensions.

We're reminded of Warren Buffet's observation that cigarettes are the ideal consumer product: "...costs a penny to make; sell it for a dollar; it's addictive; and there's fantastic brand loyalty." Operating systems aren't much different, except that they don't cause cancer. In that context, Java is a "nicotine patch" that helps users to break an addiction; J/Direct is a double-nicotine cigarette.

Customers who develop or purchase applications that use J/Direct limit their future options. As the industry continues its sprint into the future, J/Direct users will be slowed to the evolutionary pace of Windows; migration costs will put other innovative platforms will be out of reach. While Microsoft might consider this an ideal situation, the customer loses out.

Ironically, 100% Pure Java might be an even a better cross-Windows API than is J/Direct. Implementing a Java Virtual Machine requires only a relatively small set of operating system services. Consequently, we're seeing JVMs pop up on platforms from cellular telephones to mainframe computers, including JVMs on Microsoft's Windows 3.1, Windows 95, and Windows NT. Implementing J/Direct requires not only a JVM, but also a large set of Microsoft proprietary APIs. Platforms lacking that function--including some Microsoft operating systems--are ill-suited for J/Direct. That's at least part of the reason we'll see Java on Microsoft platforms such as Windows 3.1 before we see J/Direct--if we see J/Direct at all.

As Einstein showed, what seems real and what is real aren't necessarily the same thing. As the brief history of the computer industry shows, nowhere are market perceptions less accurate. One of Java's primary benefits is its ability to insulate customers from the technology market's capriciousness. By divorcing applications from specific details of any particular platform, Java allows customers to hedge their bets on the future. Proprietary Java extensions such as J/Direct force a customer to make a long-term bet on a particular technology, even while using an otherwise open product. It's up to customers to reject such high-cost, technology-hindering extensions.

 -- David Kaminsky



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