Jeet Kaul, Oracle's vice president for client software, thinks Java suffers from an image problem: It's attracting the wrong crowd. "I would like to see people with piercings doing Java programming," he said at last week's EclipseCon 2010 in Santa Clara, Calif. But if Kaul is hoping Java will once again attract youthful, cutting-edge developers, as it did when it debuted in 1995, he may be in for a long wait.
Java has evolved from a groundbreaking, revolutionary language platform to something closer to a modern-day version of Cobol. In just 15 years, it has moved beyond maturity into a silver-haired stage of staid dependability. Java offers stability, not agility; reliability, not innovation. It's the language of large, enterprise software projects, ones that link legacy systems and promise high availability.
[ Fine-tune your network in two weeks -- for free! InfoWorld's Networking Boot Camp will help you double-check the fundamentals and show you how to optimize your infrastructure. The email classes start Monday, April 12, 2010. Sign up now! ]
If Kaul wants to shatter that impression, he's in the wrong place: Nothing screams "get off my lawn" like a language controlled by Oracle, the world's largest enterprise software vendor. The chances that Java can attract the mohawks-and-tattoos set today seem slimmer than ever.
Java's message falls on deaf ears
But then, Java has always struggled to break free of its unwelcome niche. No matter what segment of the developer market Sun aimed for, its efforts always seemed to fall flat.
At first, Java was pitched as a language for building applets -- small programs that ran inside browser windows -- but JavaScript stole much of its thunder there. And while Java applets offered better multimedia capabilities than HTML and JavaScript, they had nothing on multimedia plug-ins like Macromedia (now Adobe) Shockwave and Flash. More recently, Sun tried to recapture the RIA (rich Internet application) market with JavaFX, but these latest efforts have been all but ignored, with most developers still choosing sides between Flash and HTML5.
Java's early server-side capabilities were similarly overshadowed by more accessible languages, such as ASP, PHP, and ColdFusion. Sun always wrote great specs, but its academic approach was a poor fit for the freewheeling Web. It wasn't until the introduction of JavaBeans and other enterprise-class features that Java's potential as a platform for transaction-heavy server applications became apparent.
Sun also spent a lot of breath touting Java as a platform for phones and other mobile devices. But in the burgeoning smartphone market -- where software development really matters -- Java has failed to impress. Research in Motion's BlackBerry platform is built on Java, but it encourages developers to use RIM's own APIs rather than stock Java ME. Similarly, Google Android has its own, incompatible SDK, and it executes Java bytecode on Dalvik, a cut-down, custom JVM. Most significant of all, however, is the fact that on the iPhone or the iPad, arguably the hottest devices of the moment, Java doesn't run at all.
Sun's missteps
But if Java adoption has not accelerated as rapidly as Sun would have liked, much of the blame must go to Sun's own ham-fisted handling of its developer community. As the JDK swelled with ever more libraries and APIs, many developers became frustrated with what they saw as an overly complex platform, with too many buggy components, ever-changing APIs, and overhyped initiatives that merely duplicated older libraries.