The problem: Industry bickering could stunt growth
By Wylie Wong
Staff Writer, CNET News.com
March 26, 2002, 4:00 a.m. PT
Java is drawing a rising number of businesses and software developers but still must overcome major obstacles before its long-term success is assured--including roadblocks from the very people who support the programming language.
Although recent studies show that older technologies are still the main languages used by software developers, Java is beginning to close the gap. According to a 2000 IDC study, 3 million people use C and C++ as their chief software language, followed by 2.3 million Visual Basic developers and 1.2 million Java programmers. And market research firm Evans Data has reported that more people are using Java while the number of C and C++ developers is declining.
That trend is reflected in academia as well. At the Massachusetts Institute of Technology, the computer science department in 1997 replaced Microsoft's C++ with Java as the primary software language that students are required to learn. This spring, the University of California at Berkeley offered 25 Java courses and only seven on Microsoft languages.
"In my mind, Java is rapidly going to displace all the languages, particularly C++," MIT associate professor Daniel Jackson said, noting that undergraduate students are increasingly teaching themselves some Java even before attending his classes. In two years, the College Board will switch from C++ to Java for the computer science advanced placement tests that high school students take to get credit for college-level courses.
But even in the face of such encouraging signs, analysts and software executives say several factors could stunt Java's growth. The first is a predictable one, in the form of inevitable competition from Microsoft, which has released a Java-like software called C# (pronounced "C-sharp") and a new Internet software strategy in part modeled on Java.
The second obstacle comes from within Java's own ranks, as software companies release products that do not comply with industry-sanctioned standards. Although many of the incompatibilities are eventually worked out, Java supporters fear that this kind of independent development may create confusion and potential conflict that can splinter the technology's developers.
Finally, the complexity of Java itself continues to be a problem. To go beyond highly technical programmers and reach mainstream developers, analysts say Java software makers have to follow Microsoft's lead in easy-to-use programming tools that allow people to build programs simply by pointing and clicking. In particular, they criticize a standard technology called Enterprise Java Beans, which is actually supposed to save time by allowing small pieces of software to be reused. Easier Java tools would help increase the number of software developers using the language, resulting in a bigger and healthier Java market.
"It's all related in the courting of developers and independent software vendors," said analyst Mike Gilpin of Giga Information Group.
Since its invention by Sun Microsystems seven years ago, software programmers have embraced Java, first as a way to liven up Web sites and then as a way to power corporate Internet and e-business operations. Today, Java is thriving in new markets such as cell phones, providing games, stock quotes, restaurant locations and other information in real time.
The Java camp has been able to make the technology as widespread as possible, even though it failed miserably with its initial goal to supplant Windows on PCs. Part of its success is attributable to developers and customers who are simply seeking an alternative to Microsoft, which wants Windows to run software on everything from handheld devices to corporate servers.
In playing to those looking for a non-Windows option, Sun vowed that Java would run on any device without having to be rewritten--the much-touted "write once, run anywhere" principle--as opposed to Microsoft's strategy of steering everything to run on its operating systems. Java quickly won the support of other Microsoft rivals such as IBM, Oracle and BEA Systems.
In truth, however, the programming language has not fully delivered on its promise to run on multiple devices with the same code. As a result, businesses face the prospect of spending more time and money than originally anticipated when they choose Java.
"'Write once, run anywhere,' on the server side is simply not happening," Meta Group analyst Will Zachmann said.
Many say the problem stems from the protracted time it takes to agree on a Java standard, which can take 12 to 18 months to complete. Software makers, facing intense competitive pressure for new customers, can't wait that long to release new products, so they regularly release Java software with improvements that are based on nonstandard technologies.
Most Java software makers submit their cutting-edge technology to the Java Community Process, where Sun and other Java companies hash out future standards. If the technology is approved as a standard, it is made available for other software makers to use. But as new standards are created, Java companies invent new technology that is not standard to give them a competitive edge.
In their quest to differentiate themselves in the lucrative e-business software market, BEA, IBM and other Java software manufacturers have built such nonstandard technology into their application servers and other products to make them faster and more reliable. That has raised concern among some executives that a piece of software written to run on one Java maker's application server won't be 100 percent compatible if run on others.
"It's a great concern. What I believe is that it splinters Java and confuses the Java developer, where it no longer delivers on the philosophical promises of 'write once, run anywhere,'" said Simon Pepper, a product director for Iona Technologies. "It dilutes the 'compatible logo' brand. It opens the door for Microsoft. If there's a technology split and the vendors are actively split among themselves, it puts doubt on developers' minds that Java is a good technology."
As an example, critics point to a controversy that has been raised in recent months by BEA, the market leader in application servers, with its plans to release a tool that allows developers to build Java applications simply by pointing and clicking.
The tool--called Weblogic Workshop and code-named Cajun--includes new grammar for the Java language that BEA plans to submit to the standards body. But some competitors say the tool is an attempt to force customers to use the company's application server.
BEA Chief Technology Officer Scott Dietzen defends the software, saying it is an "add-on" technology that was not designed to be part of the Java standard. Dietzen acknowledges that Weblogic Workshop produces software code that needs some translation to work on other application servers but said that's not his company's problem.
"BEA is not going to go out of our way to make that easy. That's not our job," he said. "Our job is to share (innovations) with the Java community. Our competitors should leverage the innovations we're sharing to bring into their own products."
Ted Shelton, the chief strategy officer of rival Borland, said he fears that such attitudes will fragment the Java camp and stunt its growth.
"Customers need to decide, 'Do I need Cajun or not?' If so, I need to know the rest of the J2EE community may never support it, and I may be locked into BEA," Shelton said. The J2EE (Java 2 Enterprise Edition) standard is a blueprint for businesses to write Java software that runs on servers. "It's true today that 5 to 10 percent of applications could be incompatible," he said, but with the addition of BEA's tool "the threat is 25 to 30 percent."
Being forced to use any company's technology is exactly what many customers fear most.
"Our directive is whenever and wherever possible, we do not use proprietary extensions unless there's a significant reason for it. We don't want to be locked in," said Mike Dunn, vice president of key technology services at Key Bank. Although his company has decided to use IBM software for now, he is careful to preserve his options to use other technologies.
"The thing we are trying to guard against is you never know when a vendor gets too comfortable with achieving dominance in a particular market," Dunn said. "Right now, we're pleased with IBM's performance, but three years from now, you don't know."
His concerns have significant ramifications on the bottom line. As more technologies have become standardized, the cost of moving software from one application server to another has decreased in recent years from about 20 percent of the original cost to about 5 percent, according to a recent report by Giga. But that cost could rise again if new Java incompatibilities make more software adjustments necessary.
Case in point: Developers for Vignette, which makes software that allows companies to manage Web content, have to rewrite its code to work with application servers made by BEA, IBM and Sun. "They write to the core application server, then we go back and write the specific code for each specific application server," said Santi Pierini, Vignette's vice president of product strategy.
Yet even with such complications, he said, Java is still preferable to many alternatives. In the past, for instance, programmers using the C language had to translate its software code to run on all the different versions of the Unix operating system.
"It's not perfect, but it's infinitely better," Pierini said of Java. "I remember when it was trying to get code to run on HP-UX, Solaris and Intel processors. J2EE and Java make the whole process much better."
That assessment is echoed by most other Java proponents, who say they can live with the conflicts that result from unsanctioned software development. They argue that 90 percent compatibility is good enough and can be fixed with relative ease.
Giga's Gilpin, for one, believes a little incompatibility is not necessarily a bad thing. Developers have long invented nonstandard technologies, then submitted them to the standards body for approval--a process that ends up improving Java and keeping it competitive with Microsoft technologies.
Java creator optimistic about programming language's outlook|
James Gosling, Java inventor
March 26, 2002
"It's something that has to be done," Gilpin said. "In any moment in time, there's always a set of standards and new technologies that go beyond that."
Indeed, Java Server Pages (JSPs), which allow Web pages to include small Java applications, were not standardized at first. Application server makers all had their own versions of the software before the industry hammered out a JSP agreement as part of the overarching J2EE standard.
Microsoft executives say the Java software makers have no choice but to build proprietary extensions to their application servers.
"It's pure nonstandard stuff, but it's how they stay relevant and how they make money," said Barry Goffe, group manager for Microsoft's Enterprise Marketing Strategy Group. "They're beholden and saddled with J2EE. You've got like 10 companies doing the same thing. So it's how they break out of the pack."
Rich Green, Sun's vice president for Java and XML technologies, said the Java companies want to innovate first and standardize later--and he sees nothing wrong with that.
"We would never try to fracture the standard. But we produce things outside of the standard; people will play with it, and we will put the 'greatest hits' in the platform," Green said. "Developers need to learn and experiment on the job before a standard is produced."
Regardless of their opinions on the standards issue, Java supporters can always rely on one unshakable common bond: their fervent opposition to stay beyond Microsoft's grasp.
"Microsoft makes nice tools, but you don't get a lot of choice. It's the only game in town," said Larry Podmolik, chief technology officer of consulting firm LeapNet in Chicago. "Java is not 100 percent 'write once, run anywhere,' but it's pretty darn close."