News on Monday
more>>
SharePoint Tech Report
more>>


   

 
 
Download Current Issue
ISSUE 2/1/2010 PDF

Need Back Issues?
DOWNLOAD HERE

Receive the print Edition?


 
blogs tab
Is Microsoft eyeing Office subscription pricing?
Microsoft may be preparing to offer a new Office pricing option called "union," which charges the same for cloud as on-premises.
02/01/2010 09:38 AM EST

Facebook rewrites PHP runtime
Facebook is about to open source its own PHP runtime, written from scratch for speed.
01/30/2010 08:53 PM EST

There WILL be a JavaOne this year
JavaOne will happen in 2010, as a co-located event with Oracle's OpenWorld, on Sept. 19-23 in San Francisco.
01/27/2010 01:02 PM EST

 

Events calendar tab
2/9/2010 to 2/13/2010
San Francisco
IDG World Expo

2/10/2010 to 2/12/2010
San Francisco
BZ Media

2/17/2010 to 2/25/2010
Atlanta
Python Software Foundation

2/19/2010 to 2/20/2010
Los Angeles
SCALE

2/21/2010 to 2/24/2010
Las Vegas
IBM


 
Most Read Latest News Blog Resources

Java the bloat




June 15, 2008 — 
Don’t expect people to bring lawn chairs to camp outside Sun Microsystems’ headquarters, waiting to pick up their copy of Java EE 6 when it’s released this year. After all, the platform for server applications isn’t the hottest new cell phone or game console. While Sun is touting the modularity and simplicity of the next generation of the Enterprise Edition, many are skeptical about its promise given the underwhelming response to its predecessor, Java EE 5.

Although software development experts involved in the Java Community Process (JCP) are working to finalize the specifications for Java EE 6, due by year’s end, the market may already be passing Sun by. To minimize the notorious “Java bloat”—the result of adding APIs and other specifications that fatten the platform without discarding old ones—Sun is preaching the virtues of modularity. Developers need only use the modules, or in Sun’s parlance, “profiles,” prescribed to build the particular application they have in mind.

To be sure, Sun can point to improvements in Java EE 6 over EE 5, and in EE 5 over its predecessor. But other software companies, commercial and open-source, are formulating solutions that can be used well before Sun can get EE 6 out the door.

“Modular design ... is something [application vendors] are basically taking into their own hands,” said Jeff Genender, a representative in the JCP of the Apache Software Foundation.

Apache, a nonprofit group supporting multiple open-source software projects, developed the Geronimo application server, whose latest update was delivered April 28. Geronimo features GBeans, a plug-in-based architecture, which lets users remove unneeded specs from Java EE 5, building lightweight configurations of the server.

A developer can start with what is basically a Geronimo kernel and add components as plug-ins to create a specific software stack, or start with the full Java EE 5 stack and remove components, Genender explained.

In a different approach to fighting Java bloat, Intelliun is using model-driven development, which adds an abstraction layer between the Java EE platform and the application layer. That way, the application can be developed without the complications of the platform layer, said Iyad Jabri, president and CEO of Intelliun.

“Our business model is to protect our customers from those changes,” said Jabri.

According to critics, the industry’s push for Java modularity was partly driven by Sun’s failure to significantly improve the design of Java EE 5 and by those critics’ doubts that EE 6 will be much better.

EE 5 didn’t deliver
“Java EE 5 failed to significantly reduce the complexity of the environment,” said Anne Thomas Manes, vice president and research director of Burton Group, an IT research company. “It reduced the lines of code that people had to produce, but it didn’t reduce the complexity.”

Adding specifications and APIs without discarding outdated ones has created “this beast” that Java EE is today, Manes said.

But Sun can point to several changes in Java EE 5, finalized by the JCP in May 2006, that it argues improved performance over its predecessor, J2EE 1.4. These changes include the addition of the Java Persistence API, a framework for more easily managing relational databases in an application; more default settings for simplified programming; Enterprise Java Beans, which introduces a degree of modularity into development; and JavaServer Faces, a component to simplify design of the user interface.

“Java EE 5 has been very well received,” said Roberto Chinnici, Sun’s Java EE team lead and specification team co-leader for JSR 316, the overarching specification for Java EE 6, last month in a presentation at JavaOne.

The Java EE 5 software development kit has been downloaded 3 million times since it was introduced, both as a standalone and with downloads of NetBeans, Sun’s integrated development environment for building Java applications, Chinnici said.

However, the market didn’t exactly embrace Java EE 5 to the extent that Sun claims. “Java EE 5 Simply Too Complex,” read an SD Times headline from Nov. 1, 2006, above an article quoting Richard Monson-Haefel, who at the time was also a Burton Group analyst.

To this day, some application server vendors still haven’t certified on Java EE 5, added Rod Johnson, CEO of SpringSource, the commercial sponsor of the open-source Spring framework for Java application development.

“If you take a look at the lukewarm take-up of Java EE 5, it was beginning to head toward irrelevance,” said Johnson. He then added that he hopes EE 6 will restore its relevance.

IBM, for instance, only recently “fully certified” Java EE 5 in beta release, with general availability expected later this year, spokesman Matt Berry wrote in an e-mail.

Legacy customers are slower to implement new platforms, such as Java EE 5, while newer customers wishing to adopt advanced technologies embrace them, Berry wrote. To accommodate the latter group, IBM offers Feature Packs, which bundle some of the newer components of EE 5 in its WebSphere Application Server. IBM has released two Feature Packs, one in June and the other in November 2007.

Sun executives defended their Java EE strategy at JavaOne. Although he called complaints of Java bloat “overstated,” Rich Green, executive vice president of software at Sun, said the company is developing a solution because customers want one.

“We’re addressing the market and we’re doing it,” Green said at a news conference during the show. “I think we have that one close to being solved.”

Can’t throw anything away
The main contributor to bloat is the presence of outdated specifications that have been superseded by newer ones, but all of them remain in the code. Sun can’t discard those legacy specifications because someone, somewhere, is still using them. In a sense, Java EE is like the parts department of a car dealer. In the real world, a 2008 model may have a much better fuel injector than a 2001 model, but when the owner of a 2001 needs a new fuel injector, the dealer would have to order it from a parts supplier if it isn’t in stock.

But in this example, the auto dealer has stocked a decade’s worth of older parts on a back shelf to gather dust; rearranging the inventory is essentially what Sun is doing in “pruning” Java EE 6.

The JCP is the governing body that determines which specifications should be included in Java EE as well as Java Standard Edition (SE), Java Micro Edition and other categories. Although Sun’s people dominate the JCP, it also includes representatives of application server vendors such as IBM, Oracle, Red Hat and others; representatives of open-source foundations, such as Apache; and other independent software engineers. Each Java specification is given a number, called a Java Specification Request (JSR).

Java EE 6 will prune, for instance, the JAX-RPC specification for delivering a Web service, a function delivered from one computer to another over a network, such as the Web. JAX-RPC has been supplanted by the JAX-WS, which performs the same function, only better. But APIs such as JAX-RPC have to remain in the inventory, said Chinnici.

“These APIs made it into the platform because they seemed to have been the answer at that time, but they are not something developers should look at for new development,” said Chinnici, in an SD Times interview. Pruning, he continued, means that Sun would recommend that developers use JAX-WS rather than JAX-RPC, and that application server vendors would probably not include JAX-RPC in their Java EE 6-based products if they determined their customers would not need it.

Java EE 6 will reduce the problem of bloat by including what Sun calls “Web profiles,” a set of technologies designed for developing particular applications delivered over the Internet.

“Knowing that a large number of developers who do Java EE use it mostly for Web applications, we want to deliver a Web profile that addresses their needs more directly but is still part of the EE family,” Chinnici said. “A lot of these developers end up not using some of the technologies that today are in the platform, and that’s fine. But I think the Web profile gives them something more targeted.”

Java EE 6: Too little, too late?
While the Web profile approach brings modularity into Java EE 6, Sun’s solution “is too little, too late,” said Burton Group’s Manes.

In contrast, she pointed to Apache Tomcat, the Apache implementation of two Java EE technologies; Java Servlet, for extending the functionality of a Web server; and JavaServer Pages, for creating dynamic Web content. Although these will be included in EE 6, they’re already available in Tomcat, Manes noted.

“There are a lot of people who’ve been developing apps based on that profile, before it was a standard [EE 6] profile,” she added.

Also, the Web profile so far is the only one in Java EE 6 that, even if it does address the needs of most EE developers writing Web applications, doesn’t serve people trying to develop other applications. EE 6 could also use a profile for Web services, back-end transactional applications or messaging services, Manes said.

In his JavaOne presentation, Chinnici said that profiles could be added by filing a new JSR for each. He gave the example of a telecommunications profile that would integrate the Session Initiation Protocol used in VoIP and instant messaging into an application that would be developed on Java EE 6.

Burton Group’s criticism of Java EE stands in marked contrast to the group’s glowing praise of Java SE 6, introduced in late 2006.

“Java SE is a phenomenal platform,” Manes said in a recent SD Times interview. “It’s more popular now than ever before. It is the most popular programming language and will remain so for a very long time.”

According to Sun, the desktop-focused Java SE 6 removed more than 300 bugs, improved native graphical user interface integrations, dealt more easily with XML and enhanced application performance by an estimated 15% compared with SE 5, and added the ability to monitor running applications.

Sun issued a beta release of Java SE 6 update 10 in April, and the company launched Java SE for Business, a revised support program that lengthens to 15 years the paid SE support enterprises can get from Sun. At JavaOne, the company released an open-source Java Development Kit for SE 6.

So, why is Java SE great and Java EE a failure? Manes argued that Sun needed to start battling bloat sooner. “Sun should have adopted the model of profiling EE about five years ago. If they had done that then, I suspect that EE would still be lean and mean and very popular.”

But Sun said it is also offering modularity to simplify Java EE in its own application server, GlassFish. JavaOne featured a technology preview of version 3, which starts with a tiny 98KB kernel download, onto which modular components can be added depending on the application being deployed.

“I don’t think ‘bloat’ and ‘98K’ are words you use in the same sentence,” Sun’s Green said at the conference.

While Sun has its critics, it has its defenders, too.

“Java EE 6 looks like a pretty radical overhaul and likely to make enough of a change that it will keep Java EE relevant,” said SpringSource CEO Johnson, who added that his company will certify a new version of its Spring platform on EE 6 early next year.

What’s more, Sun has another friend in Brian Eubanks, the owner of Build Software, a software development, training and consulting firm, and author of the 2005 book “Wicked Java Code,” which details the multiple APIs and other intricacies of Java.

“I did it for the love of Java,” Eubanks said of the book.

Java EE may be bloated and complex, he said, but Java EE 5 did make some important improvements for which Sun and the JCP should be applauded. For example, the annotations feature lets developers hit a few keystrokes that represent larger sections of code that are quickly added without having to type the code manually. EE 5 also better defines metadata, the “data about the data,” which makes it easier to manage data in developing or running an application.

But the best thing about Java isn’t the language but the core design feature of the Java platform, expressed in the “write once, run anywhere” mantra that has defined Java since Sun introduced it in 1995. It’s the Java Virtual Machine—the component of the Java platform that makes it possible to run a Java application on any operating system—that still impresses Eubanks the most.

“The JVM is by far the most powerful and most exciting part of it. You can run the code anywhere,” he said.


Related Search Term(s): ApacheJavaSun


Share this link: http://www.sdtimes.com/link/32250
 

Add comment


Name*
Email*  
Country     


  • Comment
  • Preview
Loading