

Back to the future (rethinking interactive programming) - p4bl0
http://dynamicaspects.org/blog/2012/05/15/back-to-the-future/

======
jstanley
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.

~~~
p4bl0
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.

------
pwpwp
Also on Reddit:
[http://www.reddit.com/r/haskell/comments/tokmh/interactive_p...](http://www.reddit.com/r/haskell/comments/tokmh/interactive_programming_with_lambdacalc/)

------
sasha-dv
_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.

~~~
pwpwp
_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/>

~~~
sasha-dv
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.

------
lispm
I find toy examples not very convincing.

~~~
pwpwp
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>

~~~
lispm
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.

~~~
pwpwp
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>

~~~
lispm
'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...](http://www.softwarepreservation.org/projects/LISP/MIT/MIT-LCS-
TR-047-corrected-ocr.pdf)

