--
You received this message because you are subscribed to the Google Groups "Augmented Programming" group.
To unsubscribe from this group and stop receiving emails from it, send an email to augmented-progra...@googlegroups.com.
To post to this group, send email to augmented-...@googlegroups.com.
Visit this group at http://groups.google.com/group/augmented-programming.
For more options, visit https://groups.google.com/groups/opt_out.
--
--
Well, Ralph Johnson is one of the core Smalltalk guys, who are the original big believers in augmented programming. The problem is that they are sure that Smalltalk got this right, and everyone else trying to do something different is either (a) not really doing something different, or (b) the different part is wrong/insignificant. Hence why they are convinced that we are all just trying to reinvent smalltalk (or Lisp Machine), and why the refuse to bother with looking at our details, because they are sure it will fall into (a) or (b).
Related, I got into a more intelligent discussion with Gilad Bracha (another big Smalltalk guy) on Google+ (can’t access right now) that can illustrate this point. Live programming in Smalltalk means two things: (1) fix and continue, which is not very responsive if the code you are editing is not continuously re-executing, and (2) the ability to change objects directly while the program is running, but there is no record of those changes outside of your persistent image. My version of live programming is that you edit the code, program execution is repaired retroactively; the code you are then left with is persistent by itself (no need to save an image). Now Gilad’s criticism is insightful and not trollish: he claims that my view of live programming is too idealistic vs. the more pragmatic smalltalk approach; and he might be right, but I’ll try to prove him wrong J.
I stand corrected. 'Live programming' as in 'live code editing' is perfectly possible, and may also regenerate some of the new runtime state, using the techniques you describe (and you have much more expertise on them than I have). I hope that this definition of 'live programming' will prevail, and I fully support it.
I was under the impression that 'live programming' was to be strictly understood in the Smalltalk sense of direct runtime state manipulation, and that the 'idealistic' view consisted of translating these manipulations *also* into live retroactive code edits.
I did some reading based on what you wrote. If I understand correctly (and please correct me if I do not), Tanimoto level 3 is live code editing. The *additional* features of level 4 are Smalltalk live programming. Level 4 as a whole would be the 'idealistic' view that synthesizes both. I don't see how it is possible, though.
On Oct 25, 2013 9:50 AM, "Sean McDirmid" <smc...@microsoft.com> wrote:
>
> We have different ideas about live programming. There is Hancock's and tanimoto's floating around right now. Hancock's doesn't specify tine travel, but requires that feedback be comprehensible (steady frame); abstracting over time as a spatial (or two way) dimension is the way I've decided to achieve this.
>
> Smalltalk provides a bunch of great features for manipulating programs but not concrete usability features, which is probably why it has languished and is under appreciated. Hancock avoids this trap in his dissertation, tanimoto's definition doesn't
>
> Sent from my Windows Phone
> ________________________________
> From: Sjoerd de Vries
> Sent: 10/25/2013 15:21
--
I don’t find Tanimoto’s level of liveness very useful: they specify some specified technology level without considering the user experience. I much prefer Christopher Hancock’s goal of understanding and manipulating program execution in a steady frame.
Live programming is a term the smalltalk community has latched on to describe something quite different (direct manipulation actually); it took me awhile to realize they were referring to that and not fix and continue (hot code replacement). I made this clear from my first live programming paper, but through comparing with Maloney/Smith’s Morphic work (you can modify the morph “live”, but good luck getting that back in code!).
I don’t find Tanimoto’s level of liveness very useful: they specify some specified technology level without considering the user experience. I much prefer Christopher Hancock’s goal of understanding and manipulating program execution in a steady frame.
Live programming is a term the smalltalk community has latched on to describe something quite different (direct manipulation actually); it took me awhile to realize they were referring to that and not fix and continue (hot code replacement). I made this clear from my first live programming paper, but through comparing with Maloney/Smith’s Morphic work (you can modify the morph “live”, but good luck getting that back in code!).
--