[aosd-discuss] AOP languages mature enough to used in industry
Stephan Herrmann
stephan at cs.tu-berlin.de
Thu May 17 08:47:29 EDT 2007
On May 16, 2007, at 10:46 AM, Miguel Pessoa Monteiro wrote:
> I'm looking for true programming languages. As far as I know, CaesarJ,
> Eos, JasCo, ObjectTeams/Java (and many others) qualify. The problem is,
> some of those (all?) are still at the proof-of-concept stage.
In my announcement of version 1.0.0 of the Object Teams Development Tooling (OTDT)
I mentioned some reasons why we claim that we definitely left the proof-of-concept stage.
(attaching the announcement for your convenience).
Judge for yourself.
> People from industry would be reluctant to depend on them.
They _have_ to be reluctant to depend on _anything_ new.
> I'm not aware of a clear definition of "mature language", so that's why I
> talked about adoption by independent developers from industry.
Adoption gives a hint at assumed maturity. It doesn't prove anything ;-)
Industry has adopted weird languages and technologies at some point or other.
On the other hand, most research projects are not very good in marketing.
So the relationship between maturity and adoption remains as vague as any
other definition of "mature language", am I wrong?
So, why exactly are you asking your question? Which answer best suits your question
would depend on your motivation for asking, I guess.
> Admitedly, it is not an easy thing for a language to reach a level of
> maturity beyond that - just think of what it takes to turn AJDT into a
> superset of JDT for eclipse.
Exactly that has been the focus of our work on the OTDT for quite a while now.
Answering Dean Wampler's comment:
>[DW] Yes, and unfortunately, it wouldn't make sense for researchers to
>[DW] build tools to the caliber of Eclipse's JDT, for example.
Yes, but _extending_ the JDT is in fact doable. Even more so, since
Object Teams can be _used_ for this task ;-)
> I'm conjecturing that it may be relatively "easy" for some kinds of
> languages (e.g. extentions to dynamic languages such as aspectPHP and
> AspectR) to reach that point. Again, I could be wrong, hence my original
> post.
If your post was intended to simply back this conjecture: yes you're certainly right
that some maturity can be achieved a lot _faster_ using a dynamic language.
That's why our first language prototypes for Object Teams where based on Lua
and Ruby (the first was done in two days, roughly, the second was a master's
project, see our AOSD'03 paper).
After first experiments we switched to Java because some things we wanted to do
don't fit well into the world of dynamic languages, notably: static analysis of all kind.
The OT/J compiler supports 208 distinct diagnostics (errors/warnings), signaling
wrong or problematic usage of Object Teams constructs (one reason for wanting
this is to aid developers learning the language).
I wouldn't know how to give such detailed diagnostics for a dynamic language.
(Maybe Pascal will teach me ;-) . Has, e.g., anybody ever written a type checker
for family polymorphism for any dynamic language?)
Don't get me wrong, IF you are happy with a dynamic language, then you will
certainly be faster in extending your language and IDE.
For Object Teams we decided for a more static way (yet supporting dynamic
aspects at several levels!), and we did invest efforts in making our tool mature.
However, this was not an easy road, and researchers doing new projects should
actually think twice before extending Java, because the price to invest is high!
best,
Stephan
--
--------------------------------------------------------------------------
Dr. Stephan Herrmann
Organizing Chair of ECOOP 2007 (July 30 - August 3)
http://2007.ecoop.org
----------------
Technische Universität Berlin
Software Engineering Research Group
http://swt.cs.tu-berlin.de/~stephan
phone: ++49 30 314 73174
--------------------------------------------------------------------------
-------------- next part --------------
After years of hard work by numerous smart people,
it is my great pleasure to announce the
1.0.0 Release
of the
Object Teams Development Tooling (OTDT)
www.objectteams.org/distrib/otdt.html
During the last months polishing the tool has continuously focused on:
Completeness: We have invested efforts so that the tool can handle more
than "text book examples", meaning that all features of ObjectTeams/Java
can be freely combined with each other and with all existing features of
the host language Java 5. A test suite of over 1800 OT/J programs just for
testing compiler and runtime gives evidence of the result of our efforts.
Together with the tool, also the exhaustive language definition is
released as OTJLD version 1.0, see:
http://www.objectteams.org/def/1.0
Convenience: The OTDT, which is based on the Eclipse JDT 3.2.2, supports and
extends all those features that make the JDT special, like:
- syntactic and semantic highlighting
- structural views like outline, type hierarchy, and call hierarchy
- code assist (completion and quick fixes) etc.
As an example of how these features have been extended for Object Teams
consider the call hierarchy: normally this view only shows control flows
caused by method calls. The OTDT extends this concept to include control
flows that are induced by aspect binding ("callin" and "callout" bindings).
A comprehensive list of features can be found at
http://www.objectteams.org/distrib/features.html
One of the most successful applications of ObjectTeams/Java and the OTDT
is the OTDT itself: significant parts of this tool have been developed
as aspect plug-ins extending and adapting existing plug-ins of Eclipse
and its JDT. This is made possible by OT/Equinox, the integration of the
Object Teams runtime with the Equinox framework underlying Eclipse.
Using OT/Equinox for the design and implementation of the OTDT we succeeded
in developing numerous adaptations, mostly to the JDT UI, that otherwise would
only be possible by copying and modifying large amounts of existing code.
By contrast, the OT/Equinox based solutions are small and well maintainable.
The full spectrum of information can be found on our freshly designed
web site:
http://www.objectteams.org
We hope you like it,
the Object Teams team
More information about the discuss
mailing list