[Main Page]

AJCP

(Difference between revisions)

Main Page | Recent changes | Log in / create account |

Printable version | Disclaimers | Privacy policy | Current revision

(first somewhat complete version; still to be reviewed by Eric Tanter)
m
Line 1: Line 1:
-
by [http://bodden.de/ Eric Bodden] and [http://pleiad.dcc.uchile.cl/people/etanter Eric Tanter]
+
by [http://bodden.de/ Eric Bodden] and [http://pleiad.dcc.uchile.cl/people/etanter Éric Tanter]
=Current state of the art=
=Current state of the art=
Line 14: Line 14:
In our eyes, the process should fulfill the following goals:
In our eyes, the process should fulfill the following goals:
# Allow people to propose enhancements and new features for the AspectJ language, in the form of AspectJ Specification Requests (AJSRs).
# Allow people to propose enhancements and new features for the AspectJ language, in the form of AspectJ Specification Requests (AJSRs).
-
# Provide a platform for discussing AJSRs and providing reference implementations for them. We believe that discussion is particularly important because it can help to prevent features from being integrated into the language that try to address problems for which a better solution would have existed. (As an example, AspectJ currently supports per-clauses such as perthis, pertarget, percflow, etc. but researchers have proposed a more general [http://portal.acm.org/citation.cfm?id=976270.976275 "per-anything" instantiation model], which probably should have been integrated into the language instead.) Discussion an AJSR may lead to:
+
# Provide a platform for discussing AJSRs and providing reference implementations for them. We believe that discussion is particularly important because it can help to prevent features from being integrated into the language that try to address problems for which a better solution would have existed. (As an example, AspectJ currently supports per-clauses such as perthis, pertarget, percflow, etc. but researchers have proposed a more general [http://portal.acm.org/citation.cfm?id=976270.976275 "per-anything" instantiation model], which probably should have been integrated into the language instead.) Discussion of an AJSR may lead to:
#* maturing the AJSR so that it can become "production ready", or
#* maturing the AJSR so that it can become "production ready", or
#* rejecting an AJSR because, for example, it would break backwards compatibility, interact with other existing features in undesirable ways, etc.
#* rejecting an AJSR because, for example, it would break backwards compatibility, interact with other existing features in undesirable ways, etc.
Line 21: Line 21:
=Support for the idea of establishing an AJCP=
=Support for the idea of establishing an AJCP=
-
At AOSD 2010, we collected signatures from renowned researchers from around the world who support the idea of establishing such a structured process fpr contributing to the AspectJ language. The original wording of this "motion" was:
+
At AOSD 2010, we collected signatures from renowned researchers from around the world who support the idea of establishing such a structured process for contributing to the AspectJ language. The original wording of this "motion" was:
<blockquote>
<blockquote>
Line 27: Line 27:
</blockquote>
</blockquote>
-
We have scanned in these signatures. They are available here: [[Media:AJCP-signatures.jpg|page 1]], [[Media:AJCP-signatures2.jpg|page 2]] and [[Media:AJCP-signatures3.jpg|page 3]]
+
We have scanned in these signatures (54 in total). They are available here: [[Media:AJCP-signatures.jpg|page 1]], [[Media:AJCP-signatures2.jpg|page 2]] and [[Media:AJCP-signatures3.jpg|page 3]]
=Plan for Action=
=Plan for Action=
At this point we would like to ask the [http://eclipse.org/aspectj/team.php main contributors to and stakeholders of AspectJ] (SpringSource, UBC, BEA, IBM UK and others) to seriously consider establishing such a process. We propose to use the mailing list [http://aosd.net/mailman/listinfo/discuss_aosd.net aosd-discuss] and/or this Wiki page to further discuss the details of this process.
At this point we would like to ask the [http://eclipse.org/aspectj/team.php main contributors to and stakeholders of AspectJ] (SpringSource, UBC, BEA, IBM UK and others) to seriously consider establishing such a process. We propose to use the mailing list [http://aosd.net/mailman/listinfo/discuss_aosd.net aosd-discuss] and/or this Wiki page to further discuss the details of this process.

Revision as of 11:31, 1 April 2010

by Eric Bodden and Éric Tanter

Table of contents

Current state of the art

The AspectJ programming language has evolved a lot in the past few years, and tool support has improved dramatically, thanks to the generous effort of a team of mostly industrial stakeholders. These contributions have lead to a wide-spread industry adoption of the AspectJ language and to the feeling that AspectJ is now the de-facto standard for aspect-oriented programming.

AspectJ could benefit from research results

Despite the maturity of the language and tool support, AspectJ's syntax and semantics still leave room for improvements. At several conferences and workshops on Aspect-oriented Software Development, researchers have proposed useful enhancements to the syntax and/or semantics of AspectJ, many of which could be easily integrated into the official AspectJ compiler ajc. These enhancements range from simple semantic "fixes" that require no or little syntactic changes, e.g. more sensible typing rules for around advice, to larger extensions like history-based pointcuts. We believe that many of these enhancements would benefit developers at large. Yet, until now there exists no structured process for discussing, developing and eventually contributing such enhancements.

AJCP: a JCP for AspectJ

A similar process exists today for Java: for many years now, various people from industry and research have contributed to the Java programming language using the Java Community Process (JCP), in the form of Java Specification Requests (JSRs). We believe it to be useful to establish a similar process for AspectJ. We therefore propose to establish an AspectJ Community Process (AJCP), similar to the JCP, in which AspectJ users and researchers can discuss and contribute these enhancements, with the goal of an eventual integration into ajc.

Goals of the AJCP

In our eyes, the process should fulfill the following goals:

  1. Allow people to propose enhancements and new features for the AspectJ language, in the form of AspectJ Specification Requests (AJSRs).
  2. Provide a platform for discussing AJSRs and providing reference implementations for them. We believe that discussion is particularly important because it can help to prevent features from being integrated into the language that try to address problems for which a better solution would have existed. (As an example, AspectJ currently supports per-clauses such as perthis, pertarget, percflow, etc. but researchers have proposed a more general "per-anything" instantiation model, which probably should have been integrated into the language instead.) Discussion of an AJSR may lead to:
    • maturing the AJSR so that it can become "production ready", or
    • rejecting an AJSR because, for example, it would break backwards compatibility, interact with other existing features in undesirable ways, etc.
  3. Provide a policy and a technical solution for voting on AJSRs. Voting can decide on an AJSRs eventual integration or rejection.

Support for the idea of establishing an AJCP

At AOSD 2010, we collected signatures from renowned researchers from around the world who support the idea of establishing such a structured process for contributing to the AspectJ language. The original wording of this "motion" was:

For many years now, various people from industry and research have contributed to the Java programming language using the Java Community Process (JCP), in the form of Java Specification Requests (JSRs). Several conferences and workshops on Aspect-oriented Software Development have proposed useful enhancements to the syntax and/or semantics of AspectJ, many of which could be easily integrated into the official AspectJ compiler ajc. We believe that many of these enhancements would benefit developers at large. Yet, until now there exists no structured process for contributing such enhancements. We therefore propose to establish an AspectJ Community Process (AJCP), similar to the JCP, in which AspectJ users and researchers can discuss and contribute these enhancements, with the goal of an eventual integration into ajc.

We have scanned in these signatures (54 in total). They are available here: page 1, page 2 and page 3

Plan for Action

At this point we would like to ask the main contributors to and stakeholders of AspectJ (SpringSource, UBC, BEA, IBM UK and others) to seriously consider establishing such a process. We propose to use the mailing list aosd-discuss and/or this Wiki page to further discuss the details of this process.


Wiki

Instant Feedback

Edited by the AOSD Steering Committee.  Maintained by the webmaster