The Truth About Java: Why Microsoft and Sun fight
By Chris Jones
SAN FRANCISCO (Wired) - For software developers, the people who at some point have to stop gawking at the promise of Java and get work to pay the bills, not much is clear in the perpetual haze that swirls around all things Java.
In fact, for now, just one thing is obvious. Sun Microsystems' push to establish its prize creation as a platform will have to overcome the most unmovable of objects in the software industry: Microsoft's determination that Windows is the center of the universe.
For Microsoft, Java is a language -- albeit a cool one that can serve Windows well. And that's that.
Developers are attracted to Java because of Sun's revolutionary -- if somewhat hype-ridden -- invitation to write programs for the sake of writing programs.
Never mind the operating system -- the code will run everywhere. The promise itself, however mist-wrapped, gets developers' juices flowing.
"Somehow Java reignites people's excitement about developing software," says Rick Ross, founder of the independent Java Lobby group. "There's something wild and new, something funky about the Internet, and its tendency is to work in a way that's not 100 percent about profit."
--
Java's entrepreneurial devotees and Sun itself are not charitable organizations. So profit must emerge from the Java haze, too, at some point. And that means developers are looking for some resolution to the Sun-Microsoft Java set-to.
Key to that battle is Sun's October federal court allegation that Microsoft is trying to determine Java's future by developing its own unique version of the product.
Sun alleges that Microsoft has broken its licensing agreement by refusing to include key parts of Sun's Java package in its software developer's kit for Internet Explorer 4.0.
Among the missing pieces are remote method invocation classes -- RMI for short -- that allow Java objects and virtual machines to talk to each other in a network.
The virtual machines are devices embedded in browsers and other software that read and "interpret" program code for specific operating systems.
"At this point, you really have to sort of bet on horses," says John Schroeder, vice president of engineering at Sqribe Technologies. "You look at the technology that's embedded in Java and you have to choose wisely."
Despite the attractiveness of the RMI linking technology, Shroeder said, "we didn't use it because of the uncertainty."
It looks like that uncertainty will last.
Microsoft views Java as a useful language -- and "language" is the operative word here -- to develop yet more applications for the Windows platform, taking advantage of all the features and processing support therein.
"We think this is a cool language," says Jon Roskill, director of visual tools marketing at Microsoft. "You can write a watered-down platform-neutral version (of an application) or use it as a language to write applications."
That means writing Java versions of Windows programs, and that represents a big problem for Sun. First, the development of a Window-ized version of Java compromises Sun's "write once, run everywhere" vision for its invention.
Second, Microsoft has overcome oft-mentioned Java performance problems by developing a virtual machine that works -- and according to many, works fast.
"Do developers have to choose?" asks Microsoft's Cornelius Willis. "Yeah, clearly, if you want to invest in Windows, Java is a great language for building Windows applications. The platform is a valuable asset, and there will always be choices."
--
It's clear that Microsoft brings all its Windows clout to the dispute. What does Sun bring to the table?
Well established as a powerful behind-the-scenes and middleware technology -- in application servers and other linking tools -- Java hasn't yet produced any significant front-end programs, something for users to feast their eyes on. And therein is one of Java's weaknesses.
"The problem lies in the GUIs (the user interfaces)," says Madhu Siddalingaiah, a Java developer who has written several books on the technology. "Developers need more tools and education on how to properly implement them. But with the core technologies, I don't know of anyone that could have done a better job with that than Sun has."
The promise is that Java will deliver more eatures as it evolves. But the question lingers: Will developers succumb to market pressures and build products without Java as the basis, or will they build software based on features of other operating systems, as Microsoft recommends?
"The trend is, where Java can't cut the mustard, developers are building in about 90 percent Java," says the Java Lobby's Ross.
Though it's becoming an accepted truth in the Java community that Microsoft is trying to squelch Sun's platform vision for Java, there is something of an anomaly in Sun's message.
On the one hand, Sun doesn't want Java to become a platform-specific language, because that would undermine Java's cross-platform mission.
However, Sun has yet to deliver important platform support so developers can build the types of applications they are accustomed to creating.
--
Java's advantages as a programming language are partly due to the Java virtual machine, which has memory management features and opens up cross-platform capabilities. And in markets ranging from back-end application servers to small, focused desktop business programs, Java is slowly proving itself to be a cross-platform commodity.
David Boydston of Solutions Consulting in Santa Barbara, California, and a longtime C and C++ developer who recently used Java to create serial port software for Windows, is sold on this aspect.
"Java has turned out to be an exceptional tool," he says. "We're building things two to four times faster than before." He added that "speed is an issue, but a well-designed program can be very fast."
For many, the advantages of using Java boils down to development time. And that may be where Java will find a ready supply of converts.
"It takes you half as much time to write Java code," says Siddalingaiah. "I teach Java classes and in every class I challenge the best C++ programmers to write a program and we'll see who gets it done first. No one will take the challenge."
(Reuters/Wired) |