RealTime IT News

PARC Cedes AspectJ Technology to Eclipse

The Palo Alto Research Center (PARC) Tuesday said it has transferred AspectJ -- a nascent Java language extension to work around problems -- to Eclipse because it has outgrown PARC in terms of how much more it can be developed in that organization.

A toolkit crafted from the more broad software programming practice of Aspect Oriented Software Development (AOSD), AspectJ makes it easier for developers to deal with problems that occur in large software systems by separating out and centralizing software for crosscutting issues.

These issues, such as logging, error handling, standards enforcement and feature variations, are very difficult to implement in a modular way, so code often gets intertwined or tangled across a system and leads to quality, productivity and maintenance break downs. Code for logging, for instance, intertwines with code whose primary responsibility is something else. AspectJ relieves that, said Jim Hugunin, a PARC researcher who led the original development work on AspectJ and whose group published Aspect 1.1 Release Candidate 1 last week.

Hugunin told internetnews.com that software developers tend to think about things in small boxes, or modularly. For instance, to get "their mind around" problems in coding, developers will look at 1,000 lines of code at a time, not 10,000,000, which is implausible.

However, some things, such as logging, security policies or transaction policies, aren't rendered in orderly fashion, which was why he and his team created AspectJ.

Aspect-oriented programming (AOP) grew out of a recognition that typical programs often exhibit behavior that does not fit naturally into a single program module, or even several closely related program modules. Aspect pioneers termed this type of behavior crosscutting because it cut across the typical divisions of responsibility in a given programming model. For example, in object-oriented programming, the natural unit of modularity is the class, and a crosscutting concern is a concern that spans multiple classes.

A lack of modularity is extremely difficult because the implementation of a crosscutting behavior is scattered and developers find the behavior difficult to reason about, implement and change. Depending on the complexity and scope of the concern being addressed, the resulting tangle can be anywhere from minor to significant. Changing an application's logging policy could involve hundreds of edits.

Hugunin's AspectJ Development Tools project provides Eclipse platform-based support for AOSD that seeks to deliver a consistent experience for Java users.

More broadly, the language provides more ammunition for IBM, which spearheads Eclipse, and its partners, against Microsoft in the race to arm themselves against the impending war with .NET.

Forrester Principal Analyst Ted Schadler approved of the move, calling it a smart one the Eclipse project which seeks lure developers from .NET.

"Eclipse is gaining momentum, and this is a good example of the dynamic in action: success breeds success in open source," chadler told internetnews.com. "The size of the community is the biggest factor in the success of the effort. And everybody wants to back a winner. In the case of Eclipse, the rallying cries are: 1) Do Java better than Microsoft can do .NET; and 2) Let's stop bickering and start building tools that make developers super productive."

Hugunin said AspectJ had basically outgrown its breaches within the realm of PARC. So, he thought, why not take it to a broader audience where more developers can look at it.

"We figured it was time to let the open-source community who was using it contribute to its development," Hugunin said. He also said it will make it easier for Eclipse folks to work out existing bugs in their implementations.

AspectJ 1.1 Release Candidate 1 builds on the Eclipse Java Development Tools (JDT) framework that is proving to establish a successful synergy between the Eclipse and AspectJ movements. Hugunin said the Eclipse team will be focused on more tightly integrating AspectJ to the Eclipse platform. Such tasks slated to be undertaken will inculde refactoring and code insight.

The US Department of Commerce Advanced Technology Project funded the original work on Aspect Oriented Programming. The Defense Advanced Research Projects Agency (DARPA) funded the early development work of AspectJ at PARC and the building costs associated with it.