13 comments

[ 20.0 ms ] story [ 424 ms ] thread
Before anybody gets confused, dynamic programming is http://en.wikipedia.org/wiki/Dynamic_programming. This page is not talking about dynamic programming, but rather interactive programming.
You're right, I thought that it might be a problem but since the name of the blog is "dynamic aspect" I decided to go with "dynamic" rather than "interactive" (in the sense of dynamic language not dynamic programming). But since you brought it up, I fixed the link title.
I find toy examples not very convincing.
You have to start small to do big things.

Check out this paper for more - I find it highly interesting:

http://dynamicaspects.org/papers/PADL2010Final.pdf

I fear that it does not scale to anything that can be used to develop actual software with.

The level of 'equal' is not convincing.

I find this funny coming from someone whose handle is "lispm". You probably would have found McCarthy's original Lisp demo¹ unconvincing, too. Think about it.

¹ http://www.paulgraham.com/mcilroy.html

'Symbolic Integration'? Sounds a bit more interesting than 'equal'.

Lisp was quickly used to program complex stuff, even on tiny machines. McCarthy's group worked on AI stuff like game playing, theorem proving, language understanding, ...

In the early 60s the first self-hosting compiler was a Lisp compiler written in Lisp.

Or see the work on symbolic integration by Joel Moses: http://www.softwarepreservation.org/projects/LISP/MIT/MIT-LC...

I know not of these "end users" of whom you speak. There is only programming. - Unknown programmer of the future

Sometimes, I wonder if we live on the same planet - me

I'm not trying to be a dick, but that "quote" at the beginning of the article is just absurd. The "end users" would form an angry mob, drag that programmer out of his Ivory Tower, and kick his ass.

I think you seriously overestimate the interest of the end users in programming. End users want that the damn thing do what it is supposed to do, and go home to their lives. They don't want an interactive programming environment - they want a button to push and be done with it.

End users want that the damn thing do what it is supposed to do

Which often requires programming, in some form or another. The need for end-user extensibility is documented¹, and remember that VisiCalc was one of the reasons for the uptake of the PC.

¹ http://ccs.mit.edu/papers/CCSWP181/

I think that the end users you're referring to are just a minor subset of the end users I had in mind.

Let me give you an example of an average end user.

This guy calls the customer support (via skype) and complains that he has no internet. He says that skype is working, uTorrent is working, but he has no internet. Obviously, his network connection is OK, but he's not stopping with "there's no internet!"

Can you guess what's the problem?

The guy who sold him the computer also explained to him how to use skype and how to pirate movies (that was what he cited as his reason for buying it in the first place). So far so good. One thing he also did was to setup yahoo.com as the homepage for this guy.

Searching for porn and free goodies, our customer installed some malware that hijacked his browser and change his homepage from yahoo.com to something else. And suddenly, "my internet is not working". This guy is asking us what button he needs to click on to get his internet back. For him, internet is having yahoo.com as the homepage.

I'm not making fun of this guy. I've met a ton of similar cases. What I've learned is that people are not interested in how it works, they just want it to work so that they can use it for pirating movies or any other thing they use their computers for. They want you to hide a complex functionality behind a simple button they need to click on.

Same disinterest I've encountered while developing custom software. The customers simply don't want to mess around with the software. They want to enter some data and click on the button. For anything else they prefer to call you so that you can make that button do something else. This may be anecdotal evidence, but I'm yet to encounter a customer who wants me to build the kind of software you're describing.

(comment deleted)