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