Are there any other Lisp programmers out there with a perspective on
this technology?
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
> 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)
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.
> 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'.
> 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!
[...]
>>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
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."
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.
> 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! |
/ / `-----------------------'
( -. |
| ) |
(`-. '--.)
`. )----'
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?
--
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.
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
> 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
>> - 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).
> 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
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... ;-)
> 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
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.