I waded barefoot into the middle of a religious war with my recent article on Web services and Java (see “Is Java Obsolete?“). I haven’t seen such an outpouring of techie shock and rage since the Amiga was canceled. “Your article is so bad I have to believe it is an April Fool’s joke,” wrote one angry Java partisan, echoing the comments of many.
Just to clarify (and to stop the death threats), I never actually argued that Java is obsolete. I simply stated that Web services threaten Java’s claim to being the best way to connect applications on different platforms, such as mainframes, servers, desktops, and handhelds. Of course, programmers will still need languages, and Java seems likely to remain one of their options. But there will be others: Research firm Gartner Inc. predicts that in five years, 40 percent of programmers will be using Java, 40 percent will be using Microsoft’s .Net platform, and 20 percent will be using a variety of other languages.
Even Sun Microsystems is concerned about the future of Java — as evidenced by the way the company is rushing (belatedly) to join Microsoft, IBM, BEA Systems, and others in the Web services camp. The upcoming version of Java 2, Enterprise Edition (J2EE, version 1.4), will make it easier for Java programmers to use Web services and to exchange data via extensible markup language (XML). Sun’s annual Java conference in San Francisco this week showcased a long lineup of development tools for adding Web services to Java programs, offered by software vendors such as BEA, Borland, and Macromedia. And according to Giga Information Group, 78 percent of IT executives considering Web services view Java as the most promising platform for those services, compared with 22 percent who prefer Microsoft .Net.
When you talk to companies that are actually using Web services, though, it’s easy to see how Web services could push Java (and indeed, all development platforms) into the background. Timothy M. Chester, senior IT manager for application development at Texas A&M University, presides over one of the most complicated computing environments I’ve ever seen. The university has mainframes running Cobol, many varieties of Unix systems, Windows systems, and databases from Oracle, Microsoft, and Software AG. Just getting all these systems to talk to one another is a huge task, but Web services have vastly simplified the job. “We’ve been able to leave the duct-tape-and-baling-wire world of computing behind,” says Chester.
For instance, to process Web-based admissions applications, Texas A&M’s system used to require a complicated series of batch-mode programs that ran daily between 1 a.m. and 6 a.m., handing off data between the online application program, the university’s admissions database, a credit card processing company, and the student information database. Now the university uses XML-based Web services instead, and processes each application form as it comes in. A program built using Microsoft’s Visual Basic exchanges XML data with a “broker” from Software AG, which acts as a translator between the mainframe and the XML-speaking world outside. Chester chose Microsoft because Texas A&M was already using Windows 2000 for its Web servers. He emphasizes that Java is a strong platform, but in this case, Microsoft plus Software AG made for a simpler, cheaper solution than a Java-based intermediary such as IBM’s WebSphere. “Our whole focus is on meeting business needs, regardless of technology,” Chester says.
The fact is, Web services are easy for novice programmers to understand, well-suited to heterogeneous computing environments, and able to take advantage of the existing Web infrastructure. That makes them naturally appealing to IT managers like Chester, who would rather focus on getting a job done than on trying to standardize on a single platform. Ironically, that’s the same notion that propelled Java’s rise — the ideal of eliminating platform incompatibilities. But somewhere along the line, Java itself became a platform, and many in the Java camp have turned into the very thing they hated most: platform fundamentalists.
“The difference between Java and .Net has moved to a point where it’s no longer about technology,” Chester says. “It’s now about people, power, and religion.” Amen to that, brother.
Link broken? Try the Wayback Machine.