Java: What does its future hold?

Oracle's imminent acquisition of Sun could strengthen Java -- or cripple it

Fourteen years ago, a marketing genius at Sun Microsystems changed the name of a cross-platform experimental language from the very dependable-sounding "Oak" to the hyper-caffeinated moniker "Java," and proved once again why engineers are scared of the power that the marketing department can unleash when lightning strikes.

That era of unbridled hype is long gone, and if anyone at Sun wanted to rebrand the language today to accurately reflect its stature in the computing world, they might switch it back to Oak. Although the Java language is not truly ubiquitous, it is found in many, many different places, and it has a strong reputation for being steadfast and well-engineered. Java code may never dominate all computers or all platforms, but it is as close to a lingua franca as there is.

[ Who will benefit if Oracle spins off MySQL? Not MySQL customers, says InfoWorld's Neil McAllister. Perhaps only a European MySQL fork called Maria, suggests InfoWorld's Bill Snyder. ]

James Gosling illustrated this point when he took the stage at Oracle's OpenWorld and pulled out a JavaFX slideshow filled with a list of statistics: 850 million-plus Java-enabled desktops and "10 billion-ish" Java-enabled devices. Java virtual machines are extremely common in the next generation of gadgets from the Kindle and the Blu-ray disk players to smartphones, including not so smart cell phones. iPhone apps may run on tens of millions of iPhones, but Java is buried in 2.6 billion phones from the relatively dumb phones available for $20 to the latest generations of BlackBerrys and Android phones.

Gosling's pilgrimage to Oracle's flagship conference was just one of the ways that Larry Ellison wants to reassure the engineers about the future of the language. Oracle wants to absorb Sun, and it must still wait for European regulators to approve the decision. The U.S. government signed off, but the European feds seem to be worried about what happens to MySQL. The show that Gosling and McNealy put on for Oracle's customers suggest that the Java world will get more attention and resources than ever from Oracle once the merger is complete.

Ellison's signals won't matter to many people in the near future because Java today has more inertia than a supertanker. Changing direction won't happen without great planning and plenty of energy. But change makes people nervous and encourages speculation. Some argue that Oracle's business model is so different that it is bound to bring widespread change to every part of the Java ecosystem. But for every strong argument, there's an equally powerful reason why Oracle might want to leave well enough alone.

Enterprise seeds

Java first found a dominant role in the server farm, which remains the primary place where people expect to find a Java VM. The big servers are also the main home for all of Oracle's creations, so it makes the combination an easy match. Although PHP coders may love MySQL, many of the most serious projects for the most data-intensive businesses use Java wrapped around Oracle and this won't change soon.

Sun says there are more than 1 million downloads of its GlassFish app server every month, and older platforms such as Tomcat are still common. Many of the most serious enterprises, such as banks and insurance companies, reach for Java developers because the technology is well-respected, fast, and truly cross-platform. Many continue to build their Web applications on a mixture of PCs and Macintoshes before deploying them on Unix machines.

Still, the language is no longer the newest, hippest syntax. Some programmers grouse about the strictures of static typing and run to newer or simpler languages such as Ruby, Python, or PHP. All of those extra characters are just a drag, and some of the younger programmers view all of those curly brackets and camelCaseVariableNames as baroque as tailfins or chrome. Many of the simpler Web applications are developed in these languages now because they facilitate quick changes and rapid prototyping.

The ease of these new languages hides some fundamental limitations: Java lovers point out that Ruby developers often reach for JRuby, a Java-based implementation of the language, because Java's virtual machine does a better job of handling heavy loads and unleashing multiple threads. Jython, a Java-based clone of Python, has similar fans.

Java coders are also limiting the incursions of these new languages by borrowing many of the best techniques and folding them back into Java. Many of the simple declarative patterns from Ruby on Rails were explicitly imitated by Grails, a framework that glues together scripting extensions such as Groovy with database middleware called Hibernate. Groovy itself adds many more dynamic options for code interpretation while linking directly to any part of the Java API. There's no need to even consider Python or Ruby because Groovy lets Java programmers enjoy the seemingly endless variety of a huge library and the rock-solid VM at the foundation with a sleek, modern syntax.

[ Follow the Oracle/Sun merger drama and other hot Java topics in JavaWorld's Josh Fruhlinger's blog and in JavaWorld's Daily Brew. ]

Going mobile

The number of Java phones -- 2.6 billion -- is staggering because many of the simplest phones on the market run Java ME somewhere inside. This lets companies such as build document reading platforms that run throughout the third world.

The numbers of smartphones running Java, though, is a bit less staggering. The iPhone's tremendous success is encouraging many to relearn Objective C, a language that gives the programmer much more low-level control over system issues like memory consumption. Java hides most of that from the programmer, a blessing until there's a need to micromanage those resources as there might be in some games that fail badly if there's a single hiccup to collect garbage. Smartphones, alas, need more careful management of resources than almost any other platform because battery life is such a crucial commodity.

Java programmers will be in demand, though, because the BlackBerry continues to embrace Java ME on its new platform by adding support for the touch screen and the accelerometer to the profile. Android is a bit of a wild card. Google is licensing the software core freely, and many of the phone manufacturers are jumping on the bandwagon. lists more than 50 possible models coming soon. Verizon's marketing campaign will draw many to the platform.

There are fault lines that may not affect most developers but could offer some foreboding of a future schism. Google built Android on top of the open source Apache Harmony and its classes, not the Sun-developed JDK and Java ME. It all looks pretty much the same to anyone writing code in Eclipse -- and it doesn't matter in many cases because Android development requires filling out plenty of XML forms -- but the fragmentation could become a problem if the two stacks drift too far from each other.

Gaining desktop ground

Most people continue to assume that Java never succeeded on the desktop, a statement that may be correct only in perception. Slowly but surely, Java has insinuated itself into the cracks and crevices of the modern OS. Although standard applications built with Swing continue to suffer by trying to target the lowest common denominator of each platform, newer options such as JavaFX and Webstart make it possible to distribute software effectively through the Web. The local platform handles all of the caching of JARs. All it takes is a click on a link and some occasional follow-up clicks on a dialog box granting privileges and the software is installed, updated, and ready to run.

JavaFX continues to be a real wild card. The graphics are now competitive with Adobe's Flash and the computational engine supports much of the full Java API, but the language is a strange bastardization of real Java, JavaScript, and some other schemes for different punctuation. The code isn't as wordy as regular Java, so it's something new for a Java programmer to learn. Still, the new animation classes may make it worthwhile for highly interactive desktop tools.

Cozily embedded Java also continues to thrive in places where people least expect it. Although C programmers may never concede the ability of Java's VM to juggle memory blocks and run quickly, Java's success in dumb phones, set-top boxes, embedded chips, the Kindle, and other low-powered gadgets demonstrates that the VMs can compete quite well against human ingenuity. The ubiquity also helps programmers move from big platforms to little ones. Although it's not simple to switch from developing enterprise applications for big iron to creating small embedded code, the Java standard makes it much simpler than many other tools.

[ Relive Sun Microsystems' rise and fall in InfoWorld's slideshow. ]

The packages keep getting smaller too. Gosling used the word "mote" to describe one Java-savvy computer the size of a quarter. JavaCard, one version of the VM and API for these tiny packages, is about to turn 3.0, a milestone that will add net connectivity. Whereas these motes aren't small enough to fit in someone's eye, their ability to talk directly to the Internet will make them very seductive.

Time to get political

The biggest question for all developers will no doubt be: What changes in politics will come if and when the Oracle acquisition closes? Oracle built itself up by charging heavily for software licenses and running on whatever hardware the customer wanted to buy. Sun, on the other hand, usually gave away the software for free and made some of the money back by selling servers. Those strategies won't change immediately because there's too much inertia, but no one knows how decisions will be made in the future.

Some argue that Oracle's past success with hefty licensing fees will only encourage Ellison to try similar techniques with Sun. Perhaps the sales force is salivating at the chance to start ratcheting up the licensing fees for using Java in places where it was previously free. Many enterprises would rather pay $100, $200, or even $1 million per CPU to avoid recoding their Java EE applications.

Cynics point out that Oracle could easily craft new versions of the VM with different performance curves for different markets. The desktop VM might stay free, and Oracle might even pay box makers to push it and JavaFX, while the enhancements for handling extreme multithreading might be very, very expensive. There are many ways to squeeze money from the people because license fees are often much cheaper than getting your recalcitrant programmers to first learn a new language and then rewrite the code base.

But others quickly point out that Oracle avoided this tack in the past. One source close to Sleepycat, the open source database company acquired by Oracle in 2006, says that Oracle roughly doubled the size of the engineering team and left all of the dual-licensing scheme intact. The software remains available with either an open source or commercial license. If Oracle treats Java like Sleepycat, the community licensing and other options will remain as free and widely available as before, but there will be more engineers improving the code.

Deeper questions remain about long-term relationships with other major Java partners. Google continues to support Apache Harmony, a pile of code that seems devoted to undermining Sun's position in the center of the universe without scaring any programmers away from the platform. Other versions of the JVM are old news. IBM lost out on the bidding war for Sun and now finds itself in even greater competition with Oracle. IBM created the Eclipse development tool and could also start to pull the platform in yet a third direction.

Other partners are more strident. Vishal Sikka, the CTO for SAP, pushed for Sun to release the Java Community Process and pointed to a proposal made by Oracle in 2007 to vest control in an "open independent vendor-neutral standards organization where all members participate on a level playing field." Although Oracle has said little about these details, it's fair to assume that the company will find new respect for the opinions it may acquire from Sun.

But while the other partners will probably engage in some saber-rattling, there's a limit to what they might consider because everyone is locked in a relationship bound by mutual-assured destruction. Any political fractures, no matter how tempting, may be prevented because everyone recognizes the power of the write-once, run-everywhere philosophy. If code written for an Android phone doesn't port easily to a Sony Blu-ray player or the Glassfish server, the opportunity opens for another language to emerge. There are already companies that write toolkits that make it simple to run Ruby on Rails or Python projects on your iPhone.

1 2 Page 1
Page 1 of 2
How to choose a low-code development platform