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
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
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
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.