Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

intentional programming

3 views
Skip to first unread message

Carl Shapiro

unread,
Sep 18, 2002, 1:52:15 AM9/18/02
to
Perhaps some of the regular readers of this group have encountered
yesterday's news about the Charles Simonyi plus Gregor Kiczales
"Intentional Programming" venture. I have invested some time in
reading a few papers and news articles dealing with the Intentional
Programming subject, and as of yet have not been able to figure out
what the big deal is regarding this allegedly new programming
paradigm. To me, this seems like some sort of Lisp macros plus block
compilation redux (I suspect that some of the designers suffer from
unhealthy performance obsession). Unsurprisingly, certain aspects of
the development environment are reminiscent of Lucid's Energize
system.

Are there any other Lisp programmers out there with a perspective on
this technology?

ilias

unread,
Sep 18, 2002, 3:06:25 AM9/18/02
to

Kiczales.

Know that name.

One of the very few books i've read.

There was his name.

Simonyi.

This name, too.

Generative Programming.

Reads like a microsoft-promotion.

Thus most information rejected.

But some placed in subconscious.

-

Intentional Programming.

Others sleep.

Others make.

History repeats.

Operating Systems.

Programming Systems.

http://www.nytimes.com/2002/09/17/technology/17SOFT.html?ei=5007&en=32d4d1af8909b6e6&ex=1032840000&partner=USERLAND&pagewanted=print&position=top
"[...]And Microsoft holds a right to be the first to negotiate with
Intentional Software if the company comes up for sale.[...]"

But there is something.

They don't know it.

They don't understand it.

They can't beat it.

The Spirit of Lisp.

-

September 17, 2002

Challenge One Initialized

Pascal Costanza

unread,
Sep 18, 2002, 5:58:02 AM9/18/02
to
Carl Shapiro wrote:
> Perhaps some of the regular readers of this group have encountered
> yesterday's news about the Charles Simonyi plus Gregor Kiczales
> "Intentional Programming" venture. I have invested some time in
> reading a few papers and news articles dealing with the Intentional
> Programming subject, and as of yet have not been able to figure out
> what the big deal is regarding this allegedly new programming
> paradigm.
[...]

> Are there any other Lisp programmers out there with a perspective on
> this technology?

As far as I understand, IP is a programming environment that stores
abstract syntax trees in a kind of object-oriented database while you're
developing your software. This has several benefits:

* It allows you to change the name of a definition (e.g., a method), or
even introduce new names. The call sites don't need to be updated
because they refer to the definitions by reference and not by name. This
is similar in effect to systems that include refactoring tools, but the
latter need to update the call sites because they refer to the
definitions by name.

* Furthermore, and that's the important feature, you can have so-called
"enzymes". (I recall seeing this term for the following concept, but I
am not 100% sure.) Enzymes are similar to macros in that they can modify
your abstract syntax tree (I guess it's not a pure AST, but also
includes semantic inforamtion). However, the difference is that you
don't need to know about the enzymes, you don't need to explicitly use
macros, the enzymes can change your code in arbitrary ways. (Perhaps
this is similar to compiler macros in Common Lisp, but again I am not
100% sure.)

* One of the results is, as they advertise it, that you can have
different views on your source code. For example, one view presents you
a C++ source code, another presents you the mathematic formulae in this
code like they would be printed by, say, LaTeX. Essentially, because
everything in your code is by reference, and not by name, you can apply
a model-view-controller concept to your AST.

The IP research team have worked for ten years on this idea and have
been able to provide some demos of these features. However, as rumours
go, they have been dropped by Microsoft because they haven't been able
to produce a stable product within that time frame. Perhaps they have
been too ambitious. (However, some of their developments have found
their way into the Visual Studio IDE.)

I am very sure that they will have a hard time to make this work in
practice, especially those enzymes. There is the problem of feature
interaction that is currently a "hot topic" in the AOSD community which
is generally not solvable. Feature interaction occurs when two or more
enzymes (or aspects, in AOSD terminology) try to modify the same piece
of code. I am convinced that feature interaction can even occur when
they modify different pieces of code, but this hasn't been sorted out
yet as far as I can see.

I can understand that Common Lispers are less excited by IP's features,
because they essentially boil down to the "code is data" view that
Lispers had already learned about a very long time ago. However, for C++
programmers (who seem to be the primary target audience for IP as of
yet) this opens up a new world.

Pascal

P.S.: Take these statements with a grain of salt - I might have gotten
some bits wrong. (but I am pretty sure about the overall story)

--
Pascal Costanza University of Bonn
mailto:cost...@web.de Institute of Computer Science III
http://www.pascalcostanza.de Römerstr. 164, D-53117 Bonn (Germany)

sv0f

unread,
Sep 18, 2002, 10:08:43 AM9/18/02
to
In article <ouywupj...@panix3.panix.com>, Carl Shapiro
<cshapi...@panix.com> wrote:

I can't really offer details. I looked into aspect-oriented
programming a few years ago. It seemed cool, but I haven't
yet needed to apply its principles. (Then again, I've done
little coding in the interim.) From aspects, I quickly
stumbled on subject-oriented programming and intentional
programming. Subject-oriented programming comes out of IBM.
The details are fuzzy in my memory (it had more to do with
comilers than the writing of programs), but I remember that
it looked "real" -- like aspect-oriented programming,
something to revisit another day.

The intentional programming stuff, by comparison, struck me
as pure snake oil. I found a few repetitive papers and a
Powerpoint presentation that was half marketing and half hot
air.

Joe Marshall

unread,
Sep 18, 2002, 11:04:55 AM9/18/02
to
Carl Shapiro <cshapi...@panix.com> writes:

> Perhaps some of the regular readers of this group have encountered
> yesterday's news about the Charles Simonyi plus Gregor Kiczales
> "Intentional Programming" venture.
>

> Are there any other Lisp programmers out there with a perspective on
> this technology?

It's about time someone directly addressed the serious glut of
`Unintentional Programming'.

Eli Barzilay

unread,
Sep 18, 2002, 5:49:35 PM9/18/02
to
Pascal Costanza <cost...@web.de> writes:

> As far as I understand, IP is a programming environment that stores
> abstract syntax trees in a kind of object-oriented database while
> you're developing your software. This has several benefits:

The OOP-ness of the database has very little to do with it. The best
way to describe it is as if you take s-exps, expand them, and use them
for their identity. For example, you could have something which is
like:

(defun #1=foo (...)
...#1#...)

and given some of these extra features, you could have several names
for different (human) languages so you can show your code in a
language you feel more comfortable with. The DB comes into play by
storing these s-exps in it so you can do things like version control
based on s-exps (instead of the traditional line based).


> * Furthermore, and that's the important feature, you can have
> so-called "enzymes". (I recall seeing this term for the following
> concept, but I am not 100% sure.) Enzymes are similar to macros in
> that they can modify your abstract syntax tree (I guess it's not a
> pure AST, but also includes semantic inforamtion). However, the
> difference is that you don't need to know about the enzymes, you
> don't need to explicitly use macros, the enzymes can change your
> code in arbitrary ways. (Perhaps this is similar to compiler
> macros in Common Lisp, but again I am not 100% sure.)

AFAICT, those enzymes are not similar to macros -- they're pretty much
identical to them.


> * One of the results is, as they advertise it, that you can have
> different views on your source code. For example, one view
> presents you a C++ source code, another presents you the
> mathematic formulae in this code like they would be printed by,
> say, LaTeX. Essentially, because everything in your code is by
> reference, and not by name, you can apply a model-view-controller
> concept to your AST.

The views thing are another feature of this thing -- for every s-exp
you can define the way it is displayed on the screen. So you can have
one such display form show an expression as "(+ (+ 1 2) 3)" and
another as "1+2+3". The hard part, obviously, is going the other way.


> The IP research team have worked for ten years on this idea and have

> been able to provide some demos of these features. [...]

And at this point it should be mention that a *lot* of that stuff has
existed *long* before Microsoft claimed yet another bright innovation.

--
((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay:
http://www.barzilay.org/ Maze is Life!

Pascal Costanza

unread,
Sep 18, 2002, 6:28:17 PM9/18/02
to
Eli Barzilay wrote:
> Pascal Costanza <cost...@web.de> writes:

[...]

>>The IP research team have worked for ten years on this idea and have
>>been able to provide some demos of these features. [...]
>
>
> And at this point it should be mention that a *lot* of that stuff has
> existed *long* before Microsoft claimed yet another bright innovation.

Great! Thanks a lot for your clarifications.

So you can already do everything in Common Lisp right now. (This reminds
me of something... ;)

Pascal


Espen Wiborg

unread,
Sep 19, 2002, 4:31:14 AM9/19/02
to

Not to mention `Accidental Programming', `Dysfunctional Programming'
or `Objectionably-Oriented Programming'.

--
Espen Wiborg <esp...@grumblesmurf.org>
The longest one-syllable word in the English language is "screeched."

Håkon Alstadheim

unread,
Sep 19, 2002, 10:30:01 AM9/19/02
to
Pascal Costanza <cost...@web.de> writes:

Well, for *everything* you would need to revive M-exprs. The dylan
crowd might have a head start on us there.

--
Håkon Alstadheim, hjemmepappa.

Thomas F. Burdick

unread,
Sep 19, 2002, 12:47:05 PM9/19/02
to
Espen Wiborg <esp...@grumblesmurf.org> writes:

> Joe Marshall <j...@ccs.neu.edu> writes:
> > Carl Shapiro <cshapi...@panix.com> writes:
> >> Perhaps some of the regular readers of this group have encountered
> >> yesterday's news about the Charles Simonyi plus Gregor Kiczales
> >> "Intentional Programming" venture.
> >> Are there any other Lisp programmers out there with a perspective
> >> on this technology?
> > It's about time someone directly addressed the serious glut of
> > `Unintentional Programming'.
>
> Not to mention `Accidental Programming', `Dysfunctional Programming'
> or `Objectionably-Oriented Programming'.

Every time I see "Intentional Programming", I initially scan it as
"International Programming", which I personally think sounds much more
fun

- Thomas, who is going to maim the next person who pitches a
development idea to him as "----- Programming".

--
/|_ .-----------------------.
,' .\ / | No to Imperialist war |
,--' _,' | Wage class war! |
/ / `-----------------------'
( -. |
| ) |
(`-. '--.)
`. )----'

Peter Lewerin

unread,
Sep 19, 2002, 1:49:35 PM9/19/02
to
> - Thomas, who is going to maim the next person who pitches a
> development idea to him as "----- Programming".

So you don't want to hear about my ideas for Cliché Programming?
(Basically, the unit of abstraction is a Stereotype; instances of
Stereotypes interact by exchanging Hype.)

Barry Margolin

unread,
Sep 19, 2002, 2:50:40 PM9/19/02
to
In article <3D8A0E2...@swipnet.se>,

Is it strongly hyped?

--
Barry Margolin, bar...@genuity.net
Genuity, Woburn, MA
*** DON'T SEND TECHNICAL QUESTIONS DIRECTLY TO ME, post them to newsgroups.
Please DON'T copy followups to me -- I'll assume it wasn't posted to the group.

Fred Gilham

unread,
Sep 19, 2002, 3:37:11 PM9/19/02
to

> >So you don't want to hear about my ideas for Cliché Programming?
> >(Basically, the unit of abstraction is a Stereotype; instances of
> >Stereotypes interact by exchanging Hype.)
>
> Is it strongly hyped?

I thought people were going away from strongly hyped languages these
days, since Java failed to take over the world wide web.

Or am I naive?

:-)

--
Fred Gilham gil...@csl.sri.com
America does not know the difference between sex and money. It treats
sex like money because it treats sex as a medium of exchange, and it
treats money like sex because it expects its money to get pregnant and
reproduce. --- Peter Kreeft

Petr Swedock

unread,
Sep 19, 2002, 4:00:49 PM9/19/02
to
Barry Margolin <bar...@genuity.net> writes:

> In article <3D8A0E2...@swipnet.se>,
> Peter Lewerin <peter....@swipnet.se> wrote:
> >> - Thomas, who is going to maim the next person who pitches a
> >> development idea to him as "----- Programming".
> >
> >So you don't want to hear about my ideas for Cliché Programming?
> >(Basically, the unit of abstraction is a Stereotype; instances of
> >Stereotypes interact by exchanging Hype.)
>
> Is it strongly hyped?

Adjective Oriented programming is alway strongly hyped. This is
because any and all macros expand to hyperbole.

Peace,

Petr

sv0f

unread,
Sep 19, 2002, 3:59:59 PM9/19/02
to
In article <3D8A0E2...@swipnet.se>, Peter Lewerin
<peter....@swipnet.se> wrote:

>> - Thomas, who is going to maim the next person who pitches a
>> development idea to him as "----- Programming".
>
>So you don't want to hear about my ideas for Cliché Programming?

Sorry, it's (kind of) already taken.

Check out:

http://portal.acm.org/citation.cfm?id=174628&dl=ACM&coll=portal

to learn more about:

===
ACM Transactions on Programming Languages and Systems (TOPLAS)
Volume 16 ,  Issue 1  (January 1994)

Cliché-based program editors

Author
  Richard C. Waters  Mitsubishi Electric Labs, Cambridge, MA

Publisher
 ACM Press   New York, NY, USA

  Pages: 102 - 150  Periodical-Issue-Article
  Year of Publication: 1994
  ISSN:0164-0925
===

This is the same Richard Waters we all know (of) and love. These
ideas are developed in a book by Rich & Waters ("The Programmer's
Apprentice") and were realized in KBEmacs (Knowledge-Based Emacs).

Thomas F. Burdick

unread,
Sep 19, 2002, 4:29:18 PM9/19/02
to
Barry Margolin <bar...@genuity.net> writes:

> In article <3D8A0E2...@swipnet.se>,
> Peter Lewerin <peter....@swipnet.se> wrote:
> >> - Thomas, who is going to maim the next person who pitches a
> >> development idea to him as "----- Programming".
> >
> >So you don't want to hear about my ideas for Cliché Programming?
> >(Basically, the unit of abstraction is a Stereotype; instances of
> >Stereotypes interact by exchanging Hype.)
>
> Is it strongly hyped?

Presumably Hype is only one dimension of the Stereotypes, so even if
it is, I'd assume it would be possible to defeat Strong Hyping by
intersecting on one of the other two axes.

- Thomas, who is laughing too hard to feel like maiming

Peter Lewerin

unread,
Sep 20, 2002, 7:27:17 AM9/20/02
to
>>So you don't want to hear about my ideas for Cliché Programming?
>
> Sorry, it's (kind of) already taken.

Just goes to show that it's very hard these days to think of something
ridiculous enough not to appear somewhere on the web already... ;-)

Paul F. Dietz

unread,
Sep 20, 2002, 7:55:13 AM9/20/02
to
Peter Lewerin wrote:

> Just goes to show that it's very hard these days to think of something
> ridiculous enough not to appear somewhere on the web already... ;-)

"It can be shown that for any nutty theory, beyond-the-fringe political
view or strange religion there exists a proponent on the Net. The proof
is left as an exercise for your kill-file." - Bertil Jonell.

Paul

Erik Winkels

unread,
Sep 20, 2002, 8:46:32 AM9/20/02
to
t...@hurricane.OCF.Berkeley.EDU (Thomas F. Burdick) wrote:
>
> - Thomas, who is going to maim the next person who pitches a
> development idea to him as "----- Programming".

Damn, I was just about to announce the Seqs language which brings to
the world "Sexy Programming". Its fundamental data structure is the
sequence and it is really quite revolutionary: Code and data are one;
and it does away with all the syntactic bagage of old-fashioned
languages like Java and Perl by delimiting each sequence by just a
pair of parenthesis.

0 new messages