Fog Creek Software
Discussion Board




Your Thought on IP (Intentional Programming)


Do you think IP is the next big software paradigm shift ?

http://www.cse.unsw.edu.au/~cs3141/ip.asf

RasterBlaster
Friday, August 13, 2004

That's the stupidest thing I've ever seen.

muppet
Friday, August 13, 2004

"That's the stupidest thing I've ever seen. "

20 years agao, People coming from structured programming also said that OO was the stupidest thing they ever saw

RasterBlaster
Friday, August 13, 2004

"That's the stupidest thing I've ever seen"

You should get out more.

Obviously
Friday, August 13, 2004


It can take maybe another 20 years before existing paradigm dies ...

I got a hard time understanding Charles Simonyi vision ...

It may or may not work

Let's wait and see ...

The man is far from being an ass, he's very sharp ...
I guess he know what he's doing ...

Just guessing
Friday, August 13, 2004

Exceptionally lame. I really hope this isn't representative of what is going to come out of MS research arm. But let me be more specific:

There is nothing fundamental here. It is a combination of using CLR (language-independent instructions) and Intellisense (context sensitive help). Those aren't bad or valueless things, but certainly not new. It also, incidentally, deliberately tying a language to an external tool that they can, conveniently, sell and be the only supplier for.

All they're really talking about doing is constructing a tree structure with *no* semantics. This is almost an anti-language. The capability to switch between representations is a red herring -- anything with structure can support that type of "feature".

I didn't see anything in the presentation that illustrated problems with existing language forms that IP would not still have. It just has fancier tools.

Jeff Kotula
Friday, August 13, 2004

"""There is nothing fundamental here. It is a combination of using CLR (language-independent instructions) and Intellisense (context sensitive help)."""

Have you read the rather in-depth coverage of IP in the book, "Generative Programming"?  The concept of IP is considerably deeper than what you describe here.  It's more about creating an environment that allows easy metaprogramming and AOP.

I haven't seen the media clip linked above, so I don't know if perhaps it's just a demo of some IP-based eye candy, which is what you make it sound like.

Phillip J. Eby
Friday, August 13, 2004

Why all the negativity? It appears to me to be quite a useful productivity boost. 

Sgt. Sausage
Friday, August 13, 2004

And it is.  But it's a collection of (obvious) solutions to niggling little problems in the current methods of programming.  There's no major new paradigm here, which is what it's being sold as.  The video lost me the minute it took a blurry picture of 1960's code and compared it to a blurry picture of modern code and then declared that there was no real difference.

A few minutes later the woman started showing some of the tricks of their IP IDE, which, if compared against a blurry picture of 1960's code, would look about the same, too.  I could write code on my ass with a bic pen and take a blurry shot of that.  It'd be similiar to the quality and relevance of their examples.

muppet
Friday, August 13, 2004

Haven't read the book -- didn't realize there was more to it than the video clip. Thanks for the info. Meta-programming and AOP, however, are also not paradigm shifts. They are useful tools in certain circumstances, but _require_ the existence of computational paradigms to latch onto. Aspects and reflection don't do any good without something to reflect or attach aspects to. Understand me; I'm not insulting them, I'm just saying they aren't fundamentally new.

The video asks the initial question of why the pace of programming hasn't matched the pace of hardware performance improvements. The answers are still the same as they were when Brooks published the "No Silver Bullet" paper.  Muppet is absolutely correct about the video's pathetic attempt to equate the visual look of Pong vs. a modern game, against code written in the 60's vs. today. Not only misleading, but lacking in any intellectual integrity. Not good for a "research" presentation.

Jeff Kotula
Friday, August 13, 2004

I think the idea is valid -- why should word processing files have more structure than source code files?

Current software development basically means that logical structures (for loops, etc.) are represented physically (as ASCII character streams in a single file). Having a DBMS store the data means that your program now has 'correct' logical/physical separation.

I suspect it's primary usage, though, would be to eliminate the whole brace/whitespace style arguments. :)

It would allow programs to read other programs efficiently and easily (insert LISP reference here).

Basically it's an offshoot of the whole "everything should be in a DBMS" argument to which I tend to agree.

Captain McFly
Friday, August 13, 2004

http://alu.cliki.net/AudioVideo#ip
http://www.findinglisp.com/blog/2004/07/lisp-refactoring.html

If Simonyi popularizes these Interlisp ideas to the world without patent encumbrance, I welcome him warmly. Because the world missed a vital fork in the road. If they're encumbered on the other hand...

His company Intentional Software was cofounded by a lisper (who later left), so they're aware of Interlisp.

I welcome anyone to refute my points, since this had actually worried me for a couple hours.

Tayssir John Gabbour
Friday, August 13, 2004

i wonder if people commenting here realize that Intentional Programming predates IntelliSense and the CLR?


(true, it doesn't predate literate programming or virtual machines.)

mb
Friday, August 13, 2004

Well, at least they are trying something.

C'est facile a critiquer!

Patrick FitzGerald
Friday, August 13, 2004

mb: I didn't realize it. I stand corrected.

I'm still not impressed with the fundamental ideas however. Using the word "Intention" to describe something that is fundamentally mathematical gets my back up I guess...

(I do like AOP and metaprogramming though, used in the appropriate context.)

Jeff Kotula
Friday, August 13, 2004

Does IP solve semantical problems which happens during problem definition?


Friday, August 13, 2004

Do yourselves a favor: if you want to learn about Intentional Programming, start with the interview at http://www.codegeneration.net/tiki-read_article.php?articleId=61 .  It's shorter than the video in the original posting, and doesn't require looking at a presenter whose hairstyle was in vogue at the same time as Alf.

The idea of IP is a reasonable one, and may indeed someday become the standard mode of programming.  However, at present the benefits that have been demonstrated are equivalent to having an IDE with support for Intellisense and refactoring; for example, Eclipse.  IP has *too much* power, actually.  For example, the ability to have different names refer to the same construct is bad bad bad.  For now, IP reminds me of AOP: a really interesting idea that makes programming *more* complicated, not less.

Oren
Friday, August 13, 2004

the theory (which i last glanced at several years ago) is that you define a language for a domain, then a domain expert can express their intentions in that language. and then you can translate that into another language, so an expert in a different domain could look at it...

yeah, off the wall a bit, the editor functions were the coolest practical part and are now in many editors.

mb
Friday, August 13, 2004

"Do yourselves a favor: if you want to learn about Intentional Programming, start with the interview at http://www.codegeneration.net/tiki-read_article.php?articleId=61"

Haven't finished reading this, but the key idea seems to be "the spec is the program", if I read what he's saying right?  The spec, of course, being expressed in a language specific to the problem domain by a domain expert.

If so, this has interesting implications for outsourcing/offshoring.  If getting the spec to a point that it can be outsourced is the same point at which that spec can simply be compiled and run, implementation coders become totally redundant.

What this obscures, of course, is Joel's famous "Leaky Abstractions".  What happens when domain experts express things in a way that makes sense to them but causes orders of magnitude more computer resources to process, and the domain expert doesn't understand why?  Is there really a silver bullet that can take whatever is expressed in a domain language and make something reasonably efficient out of it?

looney-tune
Friday, August 13, 2004

"""Is there really a silver bullet that can take whatever is expressed in a domain language and make something reasonably efficient out of it?"""

Yes, it's called a skilled programmer.  :)

Actually, one of the ideas behind IP is to allow skilled programmers to develop "intentions" that then can be simply configured and assembled by less-skilled programmers: think VB but for stuff other than the GUI.

In essence, an "intention" is just an object with methods for editing and viewing it, and other methods to generate code for it.  So, it's like a custom control that generates code based on properties it's given.

Phillip J. Eby
Friday, August 13, 2004

The reason domain-specific languages may not be so bad for pure programmers, is that computing itself has various concepts that aren't expressed well in most languages! Like state machines; we often fake them with a big loop around 'if' or 'case' statements. It would be more maintainable and faster if we could have a state machine construct.

I also think domain languages help us communicate with clients and customers better. So we're talking to them in their domain's language, instead of trying to map whatever they say to polymorphism or 'for' loops. More trust, and we seem "smarter."

The leaky abstraction part is right; something might look good but scale horribly to 10 things. Someone will need to know that a hashtable can be used instead of a list. Another issue is that people just don't think that carefully about what they do; some successful people are very intuitive and have a hard time decomposing what they do. We all speak; but how many of us actually know the mental rules of putting one word in front of another?

Tayssir John Gabbour
Friday, August 13, 2004

Intentional programming is a terrific way to get research grants. It sounds so important and useful to the future of programming. This doesn't mean it is actually useful.

PhD
Saturday, August 14, 2004

Anything that gets in my way of just a plain 'ol command- line, compiler, and text editor, sucks the big one.

Brian R.
Saturday, August 14, 2004

This (IP thing) as presented in video definitely isn't a paradigm shift that would cause the Moore's law to become valid for software development.  Until now I was expecting much more.  I now understand that my good old Delphi will make my living for quite some time.

Andre
Saturday, August 14, 2004

What I find disturbing about the IP examples in Generative Programming is that if you look at the screenshots, in an environment where variable typing is basically built-in and the whole system engineered so you can't produce type errors... they're *STILL* using flipping Hungarian notation on the variables...

Katie Lucas
Monday, August 16, 2004

Might be interesting to compare this : http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=141120

phil jones
Tuesday, August 17, 2004

*  Recent Topics

*  Fog Creek Home