archives

Is "post OO" just over?

While studying the conference program of the upcoming OOPSLA 2006 I discovered under the category "essay" an author who has quite something critical to say about AOP:

Aspect-oriented programming is discussed as a promising new technology. Like object-oriented programming, it is beginning to pervade all areas of software engineering. With its growing popularity, practitioners and academics alike are beginning to wonder whether they should start looking into or it, or otherwise risk having missed an important development. The author of this essay finds that much of aspect-oriented programming's success seems to be based on the conception that it improves both modularity and the structure of code, while in fact, it actually works against the primary purposes of the two, namely independent development and understandability of programs. Not seeing any way of fixing this situation, he thinks the success of aspect-oriented programming to be paradoxical.

This is not just another internet rant about the latest PL hype but the author, Friedrich Steimann, had done interesting work about AOP before. In particular his latest paper about typed AOP:

AOP and the antinomy of the liar

but also his award winning former critical AOP review:

Domain models are aspect free

What Makes Erlang Processes Tick?

I was amazed to see the article concerning the C implemented Apache versus the Erlang implemented Yaws and immediately went looking for how Erlang emulated its processes. What I could not find after reading "Making reliable distributed systems in the presence of software errors", and "The development of Erlang" was what was making the magic happen. What is this high level of concurrency attributed to; bytecode instructions, abstractions built upon continuations, erlang-style trampolines, what?

I would like to learn more about concurrency in general (and more specifically, its implementation), even to the point of playing around with these new ideas in Common Lisp and Scheme. I have reviewed CL-MUPROC, Termite, and Distel; and so far Distel seems to be the most interesting due to its lack of need for any underlying thread or process implemenation.

Can anyone provide me some insight, whether explaination as to how Erlang makes process magic or Lisp equivalents, or reference readings to learn more about the subject.

Thank you for your time,

Mark Stahl

References:
Apache vs. Yaws
Making reliable distributed systems in the presence of software errors
The development of Erlang
CL-MUPROC
Termite
Distel