September 24, 2003 2:10 PM PDT
IBM, JBoss eye new Java plan
The two companies are investing independently in a software development technique called aspect-oriented programming, or AOP, which is intended to make application development faster, more flexible and less prone to error.
Both companies are now looking to make AOP a standard feature of Java, said Bob Bickel, JBoss' vice president of corporate development and strategy. The company recently joined the Java Community Process, the formal structure for adding new features to the Java blueprints.
IBM is interested in making AOP a standard feature of the Java specification, according to company representatives. However, neither IBM nor JBoss is involved in any effort within the JCP related to AOP at this time.
IBM and JBoss Group are investing in a software development technique they hope to add to Java as a way to fight the rising popularity of Microsoft's C# programming language.
Making the development technique a part of the Java specification would give mainstream Java developers access to more advanced programming methods and help make Java a more attractive alternative to Microsoft's .Net-branded line of development tools.
Indeed, JBoss's interest in making AOP more widely available to Java developers through standardization stems from Microsoft's success with C#, a language that emulates many of the qualities of Java. JBoss executives said Microsoft's multiyear effort to supplant Java with C# is paying off.
"JBoss and IBM share a common concern over the popularity of C# over Java," Bickel said.
Microsoft was not immediately available to comment on the plan.
Making Java developers more productive is a key goal among Java providers in their ongoing battle against Microsoft, which sells its Visual Studio.Net line of development tools. The choice of development tools can often dictate follow-on sales of related operating systems and server software for running custom-written applications.
JBoss Group sells services around its JBoss Java server software, which is given away freely. IBM last year nudged out BEA for the revenue lead in the multibillion dollar market for Java application server software.
The key benefits of aspect-oriented programming are flexibility and simplicity, according to proponents. AOP is designed to streamline the development process by centralizing the policies that control certain functions that are used in several places within a computer program.
For example, a programmer could define a rule on how a Web server handles the way people log on to a Web site. Rather than having to change those rules for each individual accessing the site, which would involve tweaks in several places, an AOP tool lets a programmer alter the policies for the entire system all at once.
Programmers can also create their own "aspects" that handle certain functions. Analysts note that aspect-oriented programming dovetails well with widely used object-oriented programming techniques.
On top of faster development, code created using AOP tools tends to be of better quality, said Ron Bodkin, who worked on the AspectJ project at Xerox Parc and now runs a consulting company called New Aspects of Security.
In the meantime, Java companies are investing heavily to improve Java development tools and emulate Microsoft's success with its popular Visual Basic tool. Java creator Sun Microsystems, for example, plans to release Project Rave, a development tool aimed squarely at Microsoft's Visual Basic stronghold of relatively simple applications, often used in corporate departments rather than in large-scale and complex implementations. BEA released WebLogic Workshop 8.1 last month, a key component of its strategy to garner more Java server software market share.
Forrester analyst John Meyer said that in the short term, easier-to-use tools promise to accelerate Java development and make it more comparable to Microsoft's successful line of development tools.
"We're going through this continual maturation process," Meyer said. "It's going to be several years before the tool industry can adopt the extensions that are approved and ratified in the Java (standardization) space (and) before people will be ready to adopt" aspect-oriented programming.
Along with these efforts, Java software providers are investing in aspect-oriented programming. Although AOP is far from being a mainstream programming technology, Java companies have indicated that these advanced techniques are strategic in the long term.
BEA last month introduced the WebLogic Aspect Framework, designed to let Java programmers experiment with AOP techniques using BEA's WebLogic tools and server software.
IBM Research has invested in aspect-oriented programming as well in various initiatives, including one called HyperJ.
Big Blue is also involved in the evolution of AspectJ, a language specifically designed for AOP, which is now being developed under the Eclipse open-source development tools project. The AspectJ language was developed at Xerox PARC's research lab and turned over to Eclipse earlier this year.
Another Java-based aspect-oriented "framework" is Aspect Werkz, an open-source project.
While Java tool makers are investing in AOP as a way to combat Microsoft, the software giant has its own plans in the works.
Simonyi had been researching intentional programming, a concept related to aspect-oriented programming, while at Microsoft. The new company has already signed a licensing deal with Microsoft that gives the computing giant "first right of negotiation" for any new developments.
JBoss founder and technical visionary Marc Fleury said Microsoft's .Net Framework borrows many aspect-oriented programming techniques although Microsoft does not use that term in its marketing.
Fleury said the JBoss aspect-oriented framework, which it introduced in JBoss 4.0, seeks to copy the simplicity of development of Visual Basic .Net, where many of the more difficult programming tasks, such as transactions or caching, are shielded from the developer by the use of simple tags.
Bodkin is bullish on the adoption of aspect-oriented programming in commercial systems, even though it is still largely in the experimental phase. The difficulty of programming J2EE systems, which slows down the application development process and creates application request backlogs at corporations, will be the main driver, he said.
Aspect-oriented programming faces some hurdles before it becomes mainstream, though. Although the AspectJ language is an extension to Java, developers still need to be trained in new techniques. Also, there isn't a clear agreement in the industry as to what precisely makes up an aspect-oriented programming tool and where the technology should go, said Bodkin.
"It's like in the early days of object-oriented programming--there were different ideas of what object orientation should be. Standardization will be helpful, but in the meantime, open source will give programmers something useful now," Bodkin said.