Seven years of age but going on 35, Java is quickly moving into new arenas: Peer-to-peer, open source, wireless, and embedded applications, to name just a few. It’s easy to lose track of where the language is going, because it seems to be headed everywhere at once.
In this six-part series, I ask several veteran Java developers to talk about trends they perceive as important. Here are the key Java trends I’ll cover in the remainder of this series.
Backing away from the Java Community Process
Veteran Java developers are shying away from the Java Community Process in large numbers and gravitating toward smaller developer communities to implement their new ideas. The Java Community Process, once a place where developers were on a first-name basis with leadership and could e-mail a question and get an answer within minutes, has become Java the Hutt: fat, sluggish, and difficult.
“This is what happens to any bureaucracy that grows as fast as the JCP grew in just a short time,” said Mukund Balasubramanian, CTO of Infravio, a Redwood City, CA, Web services provider. “There are so many people and companies involved now, so many projects to follow, so much testing and research going on, that it is just getting out of hand.
“Just by its nature, processes like this are going to move that much more slowly. So I can understand why Java developers are frustrated with it as it now stands.”
Matt Liotta of Montara Software, a San Francisco-based organization, agrees. “Fewer and fewer people are involving themselves directly with JCP,” Liotta said. “Instead, they are hooking up with groups like Apache and getting their wares to become de facto standards. Later, Apache pushes these implementations into the JCP under its own name.”
Scripting languages to the forefront
Scripting languages such as Jython, Python, Perl, PHP, and others are receiving more and more use. (Jython is a complete implementation of the Python programming language. It’s written in 100 percent pure Java and allows easy access to Java libraries.)
“You can be very clever with some scripting languages and do things you can’t do with regular Java,” Balasubramanian said. “If you know how to use a good scripting language, you can save a lot of time and money in development.”
Sun’s JXTA open source platform is slowly but surely gaining widespread acceptance. Despite many Java developers’ love-hate relationship with the Sun Microsystems mothership, many are taking a close look at the new open source JXTA peer-to-peer Web services platform.
Using Project JXTA (short for Juxtapose, as named by Sun cofounder and evangelist, Bill Joy) as a focal point, Sun is hoping to influence standards that will govern future Web services development. In theory, with core Web services elements already standardized, Java developers will have the freedom to focus their creativity on application and services development.
Wireless application projects written in Java are picking up steam. This is happening largely because Nokia, the world’s largest mobile telephone maker, has committed to using the open source Symbian OS for all of its future handsets. Java apps of all kinds—from heavy-duty enterprise CRM apps to simple video games—run wonderfully on it. And Nokia competitor Qualcomm’s homemade operating system, BREW, also runs Java applications smoothly for another whole fleet of handheld devices.
Real-time Specification for Java
The Real-time Specification for Java (RTSJ) is coming into its own. This is where Java creator James Gosling and Sun's real-time Java guru, Greg Bollella, are spending much of their professional time right now: strategizing and promoting real-time Java apps for embedded use.
It’s beginning to pay off. Gosling and Bollella have described embedded systems as "the new frontier in which predictable execution takes precedence" over other system attributes, such as speed, bandwidth, and payload-carrying ability. (See Sun’s Real-time Specification for Java for more detailed information.) The RTSJ addresses language and runtime issues that cause unpredictability. The JCP is debating and editing the specification now; it still has a way to go (most likely several months) before final approval and implementation.
How many different flavors of Joe can you handle?
Where do you think Java is headed? Drop us a note or post a comment below.