Java: What does its future hold?

Categorized Under: Technology

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.

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.

The Webstart continues to slowly improve its ability to deliver software directly to the desktop through the browser. While I continue to find links that don’t start because of some weird software incompatibility, I find that links often work correctly without any wrangling or version issues.

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.

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.

Many of these newer languages can be serious competitors, and too much in-fighting would only help them gain ground. There are dozens of very good, if a bit obscure, open source packages, and they are usually ported to every platform with just a bit of conversion by their devotees. Python, for instance, is already the dominant language in some branches of science, and Google chose it, not Java, for the first language supported by its App Engine. Although IBM, Oracle, and Google may throw discrete elbows in a battle for dominance, they must realize that all of them benefit more from the standardization than from dominance. If one pushes too hard to gain control of Java, the others may flee to a rival.

Java for the masses
The fact that the Java code base remains fairly cohesive and relatively standard leads many to speculate on just how Sun and, if the merger closes, Oracle might monetize the ubiquity without jacking up the licensing fees and squeezing everyone. What if someone created a kind of pan-Java App Store that made it possible to sell little Java-coded widgets just like the apps on the iPhone, but ones that would run on desktops, cell phones, Blu-ray players, or anywhere else that Java might be found?

There’s already a decent collection of apps available for Android phones, and Sun is working on a Java Store that will let people just drag an application onto their desktop. It would take only a bit more code to tie together the applications and let them run in almost every corner of the Java world. The cosmetic issues of dealing with the vastly different screens and user interfaces would certainly be a challenge, but they would probably be pretty manageable.

Imagine how attractive it would be for the developers to write one app that can start the day on an Android phone, live on the desktop at work, and come home to run cleanly on the Blu-ray players in the living room.

Bringing Java apps to the couch dwellers would even be a bit ironic because Java the language was intended to run on set-top boxes in its early days when it was still known as Oak. Such a vision would build on the greatest strengths of the platform — its ubiquity and cross-platform stability — and perhaps help it evolve into a modern mechanism for bringing cash into the hands of the creators.

Source:InfoWorld

SociBook del.icio.us Digg Facebook Google Yahoo Buzz StumbleUpon

6 Comments

  1. Comment by Susan Kishner on November 23, 2009 11:28 am

    Just wanted to say HI. I found your blog a few days ago on Technorati and have been reading it over the past few days.

  2. Comment by Eric Lee on November 23, 2009 11:33 am

    A friend of mine just emailed me one of your articles from a while back. I read that one a few more. Really enjoy your blog. Thanks

  3. Comment by cool car videos on November 26, 2009 8:23 am

    I loved reading the article, you totally knocked it out of the ballpark! I have forwarded a link to my dad, and shall definately be returning back for more updates.

  4. Comment by Cheap home insurance quotes >> Tips on getting home insurance quotes ... on November 27, 2009 6:50 pm

    ..]one useful source on this topicis ,www.xarasolutions.org,..]

  5. Comment by Dorothy on November 30, 2009 6:12 am

    http://www.xarasolutions.org has become a favorite sunday point for me

  6. Comment by Amanda on December 19, 2009 1:47 am

    interesting read. I would love to follow you on twitter. By the way, did anyone learn that some Iranian hacker had hacked twitter yesterday.
    [url=http://amazon.reviewazone.com/]Amanda[/url]

Comments RSS TrackBack Identifier URI

Leave a comment