Intentionally Patented Programming
In my survey this past Wednesday of
programming "paradigm"s, I did not mention
Intentional Programming. This was, um, intentional.
If I had mentioned it, I probably would have put it under the
"Buzzword Programming" category.
As far as I can tell, it takes ideas from the 1970's
(e.g., the
Cornell program synthesizer)
that never
really caught on, adds one tweak to them, and then patents
the whole damn thing. Evil. An example of just how corrupt and
anti-progress the idea of software patents is.
Not that there's a problem with trying again ideas that
had not caught on 20 years ago — today's computers
are enough more powerful and enough cheaper to make it
worth trying some things again. Some of the ideas that did not catch on
then (because of wimpy or expensive computers)
can run on a Playstation (or a cell phone) these days.
I was wondering last April
what had killed Intentional Programming.
There were a couple of mentions on
Lambda —
an overview of IP and a discussion of
first class attribute grammars.
I did read Ooge de Moor's paper about Attribute Grammars
a couple of months ago, and I find it quite interesting.
I
wondered what the difference was, between Aspect-Oriented
Programming and IP. Some answers are on some of the pages on
the
Program Transformation Wiki, including a nice start
towards
a taxonomy of program-transformation systems.
At heart, many of these newer programming paradigms are
different ways to go about automating the transformation of
programs.
Anyway, my short answer about the diffs between AOP and IP:
AOP is more specific in the kinds of transformations it can do.
It fits in better with existing modes of program development.
In a sense, AOP is a "mix-in" paradigm: you start with an
Object-Oriented program, and then AOP can help you deal
with aspects of the program that do not fit neatly into
specific classes.
By contrast, IP lets you manipulate everything about the
program, in a syntax-tree form. One could implement a form
of OOP + AOP using an IP system, but IP does not have that
narrow a focus.
Oh, and IP involves software patents.
9:47:42 AM