What's brewing in Java's future?
June 28, 1999
by Geoff Friesen
(IDG) -- It survived those first few years of overinflated hype. It has persevered through a protracted court battle and months of surly exchanges between warring companies. But now Java may be facing its biggest challenges
It's no wonder that many companies, developers, and special-interest groups are concerned about Java's future. After all, many have invested a significant amount of time, effort, and financial resources into learning and using this technology. They don't want to see it all go down the tubes because of petty bickering and cutthroat competition.
Groups such as the Java Lobby, an organization of more than 36,000 Java developers who are committed to an open and standardized Java, are trying to make their voices heard on various issues. Developers, worried about the direction Java is taking, hope to remind the corporations vying to control it that there's more to be concerned with than which company will claim majority market share. More and more, independent developers large and small are coming forward to make sure their demands aren't lost on the Java battlefield.
This article first offers an overview of the background that led to the current state of affairs, then probes the attitudes of Java developers today, with an eye to uncovering their hopes and fears for the future.
What's happened to Java?
Of course, there are a number of well-reported reasons for the current atmosphere of uncertainty. The chief reason is the as-yet-to-be-determined outcome of the lawsuit filed by Sun Microsystems against Microsoft in 1997. The company that wins this lawsuit will have a significant impact on the future of Java technology. The trial is widely seen as battle for the control of the development of the Java language. The winner, conventional wisdom says, will take all, claiming the right to influence the direction of Java.
But no matter who wins this fight, developers remain concerned that corporate interests will supercede customer input. And that, they fear, could pollute and eventually destroy Java's write-once, run-anywhere strategy.
On one side, advocates of a "100% Pure" Java argue that Microsoft's attempts to "embrace and extend" the language have only perverted the language's original purpose: to run on multiple platforms across heterogeneous environments. The alliance between Hewlett-Packard and Microsoft has only added to the friction. For example, Hewlett-Packard has independently developed its own version of the Java virtual machine (JVM), further raising the specter of a language no one controls.
In an aggressive but secretive move, Microsoft has announced that it is working on a new technology called COOL. Although few details have emerged, there is little doubt that COOL is Microsoft's attempt to compete with Java on the server tier. If Hewlett-Packard and Microsoft can successfully integrate their technologies, Java may face some serious competition from an "extended" cousin.
But on the other side of the coin, some say Sun's attempt to have the International Organization for Standardization (ISO) standardize Java is just as dangerous a threat to the language. Some industry observers are unhappy about Sun's insistence that ISO give Sun complete maintenance control over the continued evolution of Java technology. In their minds, giving total control of a technology standard to a single company sets a dangerous precedent.
Sun and Microsoft have vastly different visions of Java's future. Simply put, Sun wants Java to exist as a platform-independent solution for building distributed applications, while Microsoft wants Java to exist as a platform-dependent solution for building Windows applications. As a result of these competing visions, developers are split over which flavor of Java to use, and whether or not competition is a good thing.
While competition is good in many areas, some developers feel that this has been less true for those bringing a programming language to maturity. The concerns of Mark Donaghue, a Java developer at Kanjisoft Systems in Quincy, MA, are typical of anxious developers who see Microsoft's recent Java strategy as a threat to the basic philosophy of the language. Although he expresses interest in Microsoft's Visual J++ and Windows Foundation Classes (WFC) technologies, he strongly feels that they betray the essence of Java's multiplatform capabilities.
"Much as I would love to use the WFC capabilities of Visual J++, it's more important to preserve the cross-platform capabilities of the language," Donaghue said. "If Microsoft succeeds in killing cross-platform Java, its dominance will be assured, and thus we will suffer from being at the mercy of a single company. A monopolistic situation means prices go up, quality goes down."
Other developers feel that such competition is an essential part of the process. This school of thought holds that what doesn't kill Java will make it stronger. Johannes Hubert, the lead Java developer at Novemail Systems in Gothenburg, Sweden, thinks that Microsoft's pressure to enhance Java's weaker areas will ultimately be good for the language.
"It is my impression that Sun is indeed handling the Java issue in a very dictatorial manner. I understand their problems and vision to keep Java clean, but I think they are just a tad too slow to accept new ideas, especially ones that don't come from Sun," Hubert said. "Actually, there are many projects going on that are moving Java in other directions than Sun's, or in the same direction, only faster -- for example, HP's 'clean-room' initiative. Only those projects don't get half the press and not a tenth of the criticism Microsoft would get if it did the same thing. Competition will keep Sun on its toes."
The lawsuit and the injunction
Microsoft originally licensed Java technology for use with its products back in 1996. As a licensee, Microsoft was expected to support an entire release of Java within the time frame defined by that release's license. But things didn't quite work out as expected.
On October 7, 1997, Sun Microsystems launched its lawsuit against Microsoft. In the suit, Sun claimed that Microsoft broke its contractual obligation to deliver products that implement Sun's Java technology in the manner prescribed by Sun's licensing specifications. Sun claimed that Microsoft was trying to break Java's cross-platform nature in order to deliver a technology that appeared to be Java but only worked with Microsoft products. According to the lawsuit, Microsoft did not fully implement all areas of the Java Development Kit (JDK) 1.1 and made changes to this JDK, thus violating its agreement.
Microsoft admits it did not fully implement all areas of JDK 1.1 in the final version of Internet Explorer 4.0. Specifically, the Java Native Interface (JNI) and Remote Method Invocation (RMI) portions of the JDK were not implemented. One possible reason Microsoft chose not to support RMI, observers speculate, is that RMI is based on a distributed computing technology that competes with Microsoft's Distributed Component Object Model (DCOM) technology. This alternate technology, developed by the Object Management Group, is known as the Common Object Request Broker Architecture (CORBA). Supporting the rival CORBA instead of DCOM would undoubtedly be a bitter pill for Microsoft to swallow.
Microsoft also made changes to JDK 1.1. New classes, methods, and variables were added to the core Java APIs (application programming interfaces). Interfaces such as DSAPrivateKey and DSAPublicKey were changed. In at least one instance, a method was missing from a class. Finally, significant behavioral differences between the Sun and Microsoft versions of JDK 1.1 were uncovered.
Given these alterations and the selective inclusion of JDK elements, many developers, like Tom Adamson, don't blame Sun for suing Microsoft. "The greatest threat to Microsoft was the success of Java. So Microsoft did what it could to corrupt it," said Adamson, president of Manchester, NH-based Adamson House Ltd., an electronic publisher of multimedia content from the Web. "I don't blame Sun Microsystems for suing Microsoft over this issue."
Concurring, developer Johannes Hubert feels that Microsoft's actions made the software giant look stingy and underhanded. "I think Microsoft shouldn't have done what it did in the first place. Not because of the reasons most other people usually give, about Java having to stay pure, etc., but because it made them look cheap. It's a too-obvious case of them trying to undermine the position of Java. Simply complying with the license -- and that means not leaving out any required stuff, as they did, or adding their own alternative solutions -- would have been the better way in my eyes. The Microsoft alternatives would then have had a chance to win on their own merits."
Microsoft's aggressive strategy, even if aimed at making Java stronger, played right into Sun's PR line: that Microsoft was only trying to corrupt Java, Hubert said. "As they did it, it simply entrenched the lines of Microsoft haters. It made Microsoft look sneaky, not to mention that it dragged them into court, not a smart move! Even worse, it rouses the suspicion that the people at Microsoft themselves are probably not 100 percent convinced that their alternatives are better than Sun's."
Microsoft's Java 'enhancements'
Microsoft's release of Visual J++ 6.0 in early 1998 inspired outrage from the Java Lobby Group. This product introduced new keywords into Java that work only with Windows platforms. In addition, it was designed to support only the Windows Foundation Classes (WFC) -- the Abstract Windowing Toolkit (AWT) and Swing were not supported.
As a result, Microsoft was slapped with an injunction in November 1998. This injunction forces Microsoft to implement pure Java in all of its Java-related products. Microsoft has responded by slowing down any further Java development. In the meantime, Java developers who program for Windows environments have been left hanging.
Michael Segal, president of Brookline, MA-based SimulConsult Inc., a medical software company that develops all of its software in Java, says that the injunction has resulted in a failure to address problems in Visual J++. "There are numerous bugs in VJ++ 6.0 that are not getting corrected," Segal said.
Many question whether injunctions are really effective in getting a company to change its ways. Jack Stephenson, a senior systems analyst and Java developer at Smarthealth, a Winnipeg, Canada-based consulting firm that focuses on information systems within the healthcare industry, believes that active measures, such as the development of the Java Plug-in, are more effective than using the courts in advancing the cause of Java. "I think that initiatives like the Java Plug-in are more strategic and effective than injunctions. They give people viable choices, real value propositions, rather than trying to force Microsoft to do something they don't want to do."
At the other end of the battlefield, Sun is actively seeking the official standardization of Java by ISO. Official standardization would undoubtedly eliminate the chance of Java fragmenting into multiple standards, which many say would result in its eventual obsolescence.
To directly approach ISO with a proposal, a company must undergo the lengthy and costly process of becoming a publicly available specification (PAS) submitter. In spite of Microsoft's objections, Sun succeeded in completing this step.
However, according to Sun, Microsoft lobbied ISO to change what are known as the maintenance rules of a standard. Basically, the new rules require the submitter to give up some control over the future maintenance of a product it wishes to have standardized.
Sun refused to give up control. Sun argued that future maintenance must be coordinated by a central steward -- Sun itself -- rather than guided by the unruly edicts of the Java community.
As a result, ISO refused to standardize Java. And Sun blamed Microsoft.
However, Sun has since attempted to seek ISO approval by taking an indirect approach. This approach allows Sun to retain maintenance control over Java while obtaining approval from an intermediary organization, which can approach ISO on behalf of Sun. Sun has found such an ally in the form of the European Computer Manufacturers Association (ECMA), which has close ties to ISO. And Sun has submitted a proposal to ECMA.
Some industry observers see this tactic as a dangerous precedent that will ultimately undermine ECMA's credibility. Although they believe that Sun will obtain approval by ECMA, they feel that ISO will not sanction Java as a standard until Sun relinquishes some of its control over the language.
Tom Adamson sums up the feelings of many exasperated observers. "If Sun wants standardization, then they have to play by ISO's rules. It was Sun's decision not to play by their rules and, as such, I think this will greatly diminish the hopes for Java," Adamson warned.
The HP-Microsoft alliance
Several months before the lawsuit, major software developers decided to form alliances. It seemed the main criterion for membership on either side was whether or not a company supported Microsoft. In early 1997, Sun, IBM, Oracle, and Netscape formed an alliance to support non-Microsoft technologies for defining objects. Shortly thereafter, Microsoft and Hewlett-Packard followed this trend by announcing their own alliance.
Almost a year after forming this alliance, Hewlett-Packard announced the release of its own independent JVM, a machine that would be made available to Microsoft. This move raised the possibility that Microsoft could pursue its own vision of Java technology by using a virtual machine (and associated class libraries) that was not under Sun's control. Many observers say this is the underlying reason for Sun's attempts to fast-track Java standardization with ISO.
Microsoft plays it COOL
After receiving the 1998 injunction that forced it to use pure Java in its various products, Microsoft announced a new object technology called COOL. Not much is yet known about this forthcoming technology, but Microsoft has said that it will integrate a new C++ object-oriented programming language with the company's COM and DCOM technologies.
"COOL is a byproduct of Microsoft's frustration with the control Sun has over Java," said Donaghue. "Since Microsoft can't offer a 'Windowized' version of Java due to Sun's restrictions, they want to offer their own, modern, object-oriented alternative to Java. It may or may not be cross-platform, but it would at least be under the control of Microsoft."
Microsoft's hope is that COOL will be competitive with or superior to Java, offering better performance on Windows platforms and more programming options that would wed it more closely to Microsoft's OS. The added speed and more robust tools could cause developers to flock back to Microsoft as a Java platform, allowing the company to regain the upper hand on the cutting-edge development platform of the moment. The eventual goal, those wary of the Redmond powerhouse say, would be to limit Java development for other OSs by making the language ever more Windows-specific.
The devil's choice for the developer is whether to toe the line and stick with the (presumably slower) pure Java solution, or to succumb to the lure of a flashy new Microsoft-backed, Windows-favorable object-oriented platform.
Too little, too late?
But it may already be too late. Benchmarks of the new release of Sun's HotSpot technology show Java to be highly competitive, sometimes beating C++ on server-side applications. (There are two or three recent threads in the comp.lang.java.programmer newsgroup to this effect.) Sun is promising more focus on the client side with the next release of HotSpot, and Java-committed developers are keeping their fingers crossed.
Many developers interviewed for this article said they felt Visual Basic and C++ would ultimately not provide enough of a competitive alternative to Java. VB is far from becoming a modern object-oriented language, they say, while C++ contains all the blemishes Java was specifically designed to avoid. In other words, Microsoft's reliance on VB/VC++/WFC may be the leading reason why it is currently losing out to Java in the battle for developers' hearts and minds.
Visual J++, Microsoft's Java IDE (integrated development environment), while well-designed, is expensive at $200 or more per copy. And if Microsoft commits to a non-Java technology, many developers will be reluctant to go out and buy a new set of tools that work with it.
Ultimately, the best hope for most Java developers would be for Microsoft to recommit to Java and give up the idea of COOL. This late in the game, it's doubtful Microsoft will be able to offer anything other than a mildly jacked-up version of an "extended" Java for Windows. But no one thinks Microsoft will be dissuaded from its plans.
Who will lead Java's development?
In fact, it seems that Microsoft is regrouping for another strike. On May 7, HP, Microsoft and several other companies decided to form the J Consortium -- an organization designed to develop realtime extensions to Java that are outside of Sun's control. The Java Lobby recently hosted an interview with J Consortium members to find out what this consortium is all about and whether or not its goal could lead to Java's fragmentation. Developers' reactions were mixed, with some viewing with skepticism Microsoft's claim to be a "minor" player. (For more on the J Consortium and developer responses to the Java Lobby's interview, see the Resources section.)
But others, like Ted Neward, a freelance consultant in Sacramento, CA, who specializes in C++ and Java development, believe the J Consortium will ultimately benefit Java technology. Neward, the author of a book on Borland's Object Windows Library for C++ and a monthly lecturer at the Sacramento Java User's Group, says he's positive about the J Consortium's potential to democratize Java's evolution.
"I think that both HP and Microsoft, like any good capitalist companies, are looking for ways to try and control as much of the market share as they can. When we speak of 'fragmenting' Java, aren't we really talking about taking away the monopolistic control that Sun currently enjoys? How is Sun any better than Microsoft in this regard?" Neward asked.
"Sun currently enjoys no competition regarding Java, and fiercely fights against any attempt to 'open' Java to any and all comers. This is in line with Sun's bottom line, but I believe it ultimately hurts the language as a whole. The J Consortium (as with any other Java-centric collection of corporate efforts) will ultimately lead to Java's benefit, as new ideas are introduced, batted around, and ultimately accepted or rejected by the community at large," Neward said.
Microsoft recently surprised industry observers by announcing that it would open its Java integration technologies (J/Direct, Java/COM, and delegates) to development tool vendors, making it possible for vendors to incorporate these technologies into their own compilers and virtual machines. The move is no surprise to developers like Neward, who believe that opening the language to developers is an inevitability.
"Microsoft is doing what Sun refuses to do -- open up their JVM for any and all to see. Quite frankly, despite the Java Lobby's obvious spin, there were a number of Microsoft-centric developers who were upset at the fact that they could not make use of Microsoft's specific features on anything other than Microsoft's VM," Neward said. "Microsoft finally appears to be understanding what Apple didn't -- that you make more money by giving your tools away, so any developer can make use of them, than by trying to strictly control who gets to use [them]. Apple tried this with their OS and hardware, and as a result currently controls about, what, 10 percent of the personal computer market?"
Developers make their Java wish lists
What is the future of Java? Predictions don't often come true. However, developers can plan for different outcomes. To that end, several developers have offered their thoughts on what they would like to see in future Java releases. They also offer advice to fellow developers and companies about what should be done in this time of uncertainty.
Peregrine Tines, a consultant with Ravna @ Tines in Cambridge, England, manages software development lifecycles. For the moment, he would like to see Java cement its current features, rather than continuing to strike out in new directions. "It will take me most of the year to start making sensible use of the broad variety of new APIs in the Java 2 platform. So the sort of development I'd like to see over the next year is consolidation -- getting fixes for long-standing bugs rather than truckloads of new functionality."
Chris Kelly, the owner of Samizdat Productions, a Hollywood, CA-based software development firm that provides Java and C++ consulting services, would like to see virtual machines become the next candidate for standardization. "All VMs should behave the same and have the same features on all platforms," Kelly said. Only then will developers feel comfortable that their software will run anywhere, he said.
Tom Eichberger, a Java developer, trainer, and consultant with Firma Thomas Eichberger in Vienna, Austria, would like to see a preprocessor added to Java, as well as an upgrade in development tools. "Better tools and an integrated environment are what's needed," Eichberger said. "More tools like Symantec Cafe and CASE tools would be of great benefit."
Some advice for Windows-based Java developers
So, what's a Java developer to do in such unsettled times? Obviously, with the time and effort they've put into mastering Java, these developers want to make sure their knowledge investment is secure. There's no simple strategy to maintaining your value as an experienced Java programmer, but there are some ways you can ride out the storm in relative peace.
Canadian software designer Jack Stephenson says that strict attention to elegant design standards and a willingness to stay nimble are key in this time of uncertainty.
"Change and uncertainty are the reality of the times. Code should be put together so that it incorporates the flexibility to accommodate future changes. For example, our shop has evolved to the point where we do very detailed UML [Unified Modeling Language] design before writing any code. With most of these designs, particularly on the server side, we can then implement the code in either Java or C++. In fact, we can generate stub code for either. This is just one example of building flexibility into your development process."
Michael Segal advises fellow developers to stick to Java 1.1 in the meantime. "My advice to Java developers is to stick to pure 1.1 Java, unless they can control the browsers of their users. In that case, it is fine to use Java 2. Since most users use Windows, it may make sense to gamble on Microsoft-specific features. But it is not clear that such a platform will continue to be supported."
Ben Albahari, chief Java developer at Genamics, a molecular biology software and services company in New Zealand, has some advice for Sun. "You've stopped more people moving from Windows development tools to VJ++ than people moving from pure Java to VJ++. It is better to use Java -- albeit polluted Java -- than no Java at all. When computers get fast enough and the pure Java libraries improve, people will start migrating to pure Java. You've just slowed down this process. Not only that, but you've given Microsoft a precedent to create a truly polluted Java clone, which would be a genuine long-term threat to pure Java."
The road ahead
Can Java survive, or will it fragment into obscurity? The outcome of the lawsuit, the attempts by Sun to have ISO standardize Java, and the future actions of the HP-Microsoft alliance will be the strongest deciding factors in the immediate future. Also important will be the activities of groups such as the J Consortium and the Java Lobby. Undoubtedly, developer loyalties will also help decide which side gets more market penetration. In the end, only time will tell what's brewing in Java's cloudy future.
Psion pushes new palmtop
RELATED IDG.net STORIES:
Sun, Microsoft spar over Java in hearing
|Back to the top||
© 2001 Cable News Network. All Rights Reserved.|
Terms under which this service is provided to you.
Read our privacy guidelines.