Java, Java Everywhere? In his Ahead of the Curve column in the June 23 issue of Infoworld, Tom Yeager asks, "Without .Net, what can Microsoft use to present its software as a unified, integrated offering?" He suggests that Sun's Java has "won" the battle for the mobile and wireless platform. While Sun may indeed have won this battle, Tom misses the big picture: that Sun has lost the war.
On December 23, 2002, a US federal judge ordered Microsoft to include Sun's Java runtime environment with the Windows family of operating systems. Two years earlier, Microsoft settled a lawsuit brought by Sun Microsystems, and agreed to pay Sun $20 million. Sun may have won these battles in the courts, but the victories were largely symbolic because Microsoft managed to find an end-run solution around the attempt to make Java ubiquitous. Microsoft has bigger plans, and they’re based on web services. Here's just one example:
Microsoft controls the desktops of the world, but it has far less clout in the market for small mobile devices such as PDAs and cell phones. However, rather than roll over and play dead—giving up the mobile market altogether—Microsoft has another opportunity to take the lion's share of mobile-device revenues.
As cell phones and PDAs become commodities, the value of device-resident software (such as operating systems, games, and other programs that run within the devices) will approach zero. Few people will pay more for a Java-based phone than for one that isn't. But the market for extra-cost and remotely hosted services for those devices will continue to increase. These services include mobile e-commerce (m-commerce), instant messaging (IM), location-based services (LBS) such as advertising-driven restaurant finders, and many others.
Java was supposed to be the "write once, run anywhere" technology. Its model is based on portable source and executable intermediate code. Web services, on the other hand, are the "write once, access from anywhere" solution. No porting is required. Services can be utilized from anywhere. There's little inherent value in a programming language, but there's tremendous value in a universally accessible service.
To win the lucrative remotely hosted service business, Microsoft (or anyone else) needed to find a way that its services could work with all mobile devices, not just those based on Java or some other platform. The key was to convince all handheld device manufacturers to use one technology. It could have been Java, in which case Sun would have been able to control the technology used to link the mobile devices to remote services. But that didn't happen. Java may be on a healthy majority of the mobile platforms, but it still isn't ubiquitous.
The only way to convince all vendors to adopt a single interface technology was to truly give it away—not under some strict licensing program as Sun did with Java, but free and unencumbered. Web services is such a technology, and by convincing virtually every vendor to support it, Microsoft guaranteed it will be able to deploy services that can be reached by every device, even those based on Java. It's a brilliant strategy, and one that allowed Microsoft (and others) to leapfrog over Java. The competition is no longer about the language or even the platform. Instead, thanks to web services, vendors' offerings can interoperate at a higher level—above the operating system or programming language.
The agreement by competing vendors to work together to develop full web-services interoperability is a vector that's critical for the emergence and success of web services.
[The above is an excerpt from Loosely Coupled: The Missing Pieces of Web Services.]
Just as I was posting this, CNET's News.com reported, "A federal appeals court dealt a legal setback to Sun Microsystems on Thursday, tossing out most of a preliminary injunction requiring Microsoft to carry its rival's version of an interpreter for the Java programming language."
Web services--along with SOAP and XML--will be ubiquitous. Java won't be. As much as I like Java (it's been my platform of choice since I first specified it for a major endeavor in 1996), it's just one of many programming languages and runtime environments that compete for the low-value part of the bigger picture.
Posted Friday, June 27, 2003 2:57:00 AM