Everyone's talking about debuggers these days

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
11 messages Options
Reply | Threaded
Open this post in threaded view
|

Everyone's talking about debuggers these days

Frank Shearar-3
First it was Gilad Bracha -
http://gbracha.blogspot.co.uk/2012/11/debug-mode-is-only-mode.html -
and now John Nolan -
http://stigmergist.blogspot.co.uk/2013/01/debugger-first-vm-development.html

I also saw a really neat demo of a framework for debugging system
calls. I hope to find out more about this when I quiz the implementor
in early February. I would be less vague if I could remember the name
of the framework!

frank

Reply | Threaded
Open this post in threaded view
|

Re: Everyone's talking about debuggers these days

Hannes Hirzel
Thank you for the links

In particular interesting is

    http://worrydream.com/LearnableProgramming/

which is referenced from Bracha's blog entry.

Interesting to see the evaluation of the Processing language and the
talk about metaphors.
E.g. the example of pasting the code for drawing a red flower.


--Hannes

On 1/25/13, Frank Shearar <[hidden email]> wrote:

> First it was Gilad Bracha -
> http://gbracha.blogspot.co.uk/2012/11/debug-mode-is-only-mode.html -
> and now John Nolan -
> http://stigmergist.blogspot.co.uk/2013/01/debugger-first-vm-development.html
>
> I also saw a really neat demo of a framework for debugging system
> calls. I hope to find out more about this when I quiz the implementor
> in early February. I would be less vague if I could remember the name
> of the framework!
>
> frank
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Everyone's talking about debuggers these days

Hannes Hirzel
And interesting observation from

http://worrydream.com/LearnableProgramming/

Names matter.
---------------------

Below are four array methods from Apple's Cocoa framework, and the
equivalent JavaScript methods:

Cocoa: addObject                          JavaScript: push
Cocoa: addObjectsFromArray               JavaScript: splice
Cocoa: arrayByAddingObject                  JavaScript:  concat
Cocoa: arrayByAddingObjectsFromArray     JavaScript: concat



On 1/25/13, H. Hirzel <[hidden email]> wrote:

> Thank you for the links
>
> In particular interesting is
>
>     http://worrydream.com/LearnableProgramming/
>
> which is referenced from Bracha's blog entry.
>
> Interesting to see the evaluation of the Processing language and the
> talk about metaphors.
> E.g. the example of pasting the code for drawing a red flower.
>
>
> --Hannes
>
> On 1/25/13, Frank Shearar <[hidden email]> wrote:
>> First it was Gilad Bracha -
>> http://gbracha.blogspot.co.uk/2012/11/debug-mode-is-only-mode.html -
>> and now John Nolan -
>> http://stigmergist.blogspot.co.uk/2013/01/debugger-first-vm-development.html
>>
>> I also saw a really neat demo of a framework for debugging system
>> calls. I hope to find out more about this when I quiz the implementor
>> in early February. I would be less vague if I could remember the name
>> of the framework!
>>
>> frank
>>
>>
>

Reply | Threaded
Open this post in threaded view
|

Re: Everyone's talking about debuggers these days

Casey Ransberger-2
Here's a fun little survey...

Who here likes to stub out stuff in the system browser and then actually implement things in the debugger?

I find myself doing that sometimes, usually when I'm "on a roll" with what I'm doing. I've never done that with another programming system.

On Fri, Jan 25, 2013 at 11:33 AM, H. Hirzel <[hidden email]> wrote:
And interesting observation from

http://worrydream.com/LearnableProgramming/

Names matter.
---------------------

Below are four array methods from Apple's Cocoa framework, and the
equivalent JavaScript methods:

Cocoa: addObject                          JavaScript: push
Cocoa: addObjectsFromArray               JavaScript: splice
Cocoa: arrayByAddingObject                  JavaScript:  concat
Cocoa: arrayByAddingObjectsFromArray     JavaScript: concat



On 1/25/13, H. Hirzel <[hidden email]> wrote:
> Thank you for the links
>
> In particular interesting is
>
>     http://worrydream.com/LearnableProgramming/
>
> which is referenced from Bracha's blog entry.
>
> Interesting to see the evaluation of the Processing language and the
> talk about metaphors.
> E.g. the example of pasting the code for drawing a red flower.
>
>
> --Hannes
>
> On 1/25/13, Frank Shearar <[hidden email]> wrote:
>> First it was Gilad Bracha -
>> http://gbracha.blogspot.co.uk/2012/11/debug-mode-is-only-mode.html -
>> and now John Nolan -
>> http://stigmergist.blogspot.co.uk/2013/01/debugger-first-vm-development.html
>>
>> I also saw a really neat demo of a framework for debugging system
>> calls. I hope to find out more about this when I quiz the implementor
>> in early February. I would be less vague if I could remember the name
>> of the framework!
>>
>> frank
>>
>>
>




--
Casey Ransberger


Reply | Threaded
Open this post in threaded view
|

Re: Everyone's talking about debuggers these days

Frank Shearar-3
By "stub out stuff" do you mean "write a stub test case with self
assert: false"? *raises hand*

Annoyingly, defining a #subclassResponsibility method destroys my
flow: the debugger won't, obviously, prompt you for that "create
method" button I love so much. (Hm, could one restore that with a
SubclassResponsibilityException that the debugger can catch?)

frank

On 25 January 2013 21:47, Casey Ransberger <[hidden email]> wrote:

> Here's a fun little survey...
>
> Who here likes to stub out stuff in the system browser and then actually
> implement things in the debugger?
>
> I find myself doing that sometimes, usually when I'm "on a roll" with what
> I'm doing. I've never done that with another programming system.
>
>
> On Fri, Jan 25, 2013 at 11:33 AM, H. Hirzel <[hidden email]> wrote:
>>
>> And interesting observation from
>>
>> http://worrydream.com/LearnableProgramming/
>>
>> Names matter.
>> ---------------------
>>
>> Below are four array methods from Apple's Cocoa framework, and the
>> equivalent JavaScript methods:
>>
>> Cocoa: addObject                          JavaScript: push
>> Cocoa: addObjectsFromArray               JavaScript: splice
>> Cocoa: arrayByAddingObject                  JavaScript:  concat
>> Cocoa: arrayByAddingObjectsFromArray     JavaScript: concat
>>
>>
>>
>> On 1/25/13, H. Hirzel <[hidden email]> wrote:
>> > Thank you for the links
>> >
>> > In particular interesting is
>> >
>> >     http://worrydream.com/LearnableProgramming/
>> >
>> > which is referenced from Bracha's blog entry.
>> >
>> > Interesting to see the evaluation of the Processing language and the
>> > talk about metaphors.
>> > E.g. the example of pasting the code for drawing a red flower.
>> >
>> >
>> > --Hannes
>> >
>> > On 1/25/13, Frank Shearar <[hidden email]> wrote:
>> >> First it was Gilad Bracha -
>> >> http://gbracha.blogspot.co.uk/2012/11/debug-mode-is-only-mode.html -
>> >> and now John Nolan -
>> >>
>> >> http://stigmergist.blogspot.co.uk/2013/01/debugger-first-vm-development.html
>> >>
>> >> I also saw a really neat demo of a framework for debugging system
>> >> calls. I hope to find out more about this when I quiz the implementor
>> >> in early February. I would be less vague if I could remember the name
>> >> of the framework!
>> >>
>> >> frank
>> >>
>> >>
>> >
>>
>
>
>
> --
> Casey Ransberger
>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Everyone's talking about debuggers these days

Colin Putney-3



On Fri, Jan 25, 2013 at 1:55 PM, Frank Shearar <[hidden email]> wrote:
By "stub out stuff" do you mean "write a stub test case with self
assert: false"? *raises hand*

Annoyingly, defining a #subclassResponsibility method destroys my
flow: the debugger won't, obviously, prompt you for that "create
method" button I love so much. (Hm, could one restore that with a
SubclassResponsibilityException that the debugger can catch?)

Yeah, I got hit by that one just this morning. It should work like #shouldBeImplemented, but create the method on the class of the receiver, instead of the class where the method is defined.

Colin


Reply | Threaded
Open this post in threaded view
|

Re: Everyone's talking about debuggers these days

Casey Ransberger-2
In reply to this post by Frank Shearar-3
Inline, briefly.

On Jan 25, 2013, at 1:55 PM, Frank Shearar <[hidden email]> wrote:

> By "stub out stuff" do you mean "write a stub test case with self
> assert: false"? *raises hand*

Actually, I do that when I'm feeling responsible, as in I-might-want-to-use-this-more-than-once. More often though, I'm dinking around on Project Euler and plan to throw my code away, in which case I just paste in "self break."

> Annoyingly, defining a #subclassResponsibility method destroys my
> flow: the debugger won't, obviously, prompt you for that "create
> method" button I love so much. (Hm, could one restore that with a
> SubclassResponsibilityException that the debugger can catch?)

I'm not sure what the right way to do that would be, but I feel your pain. Try it?

> frank
>
> On 25 January 2013 21:47, Casey Ransberger <[hidden email]> wrote:
>> Here's a fun little survey...
>>
>> Who here likes to stub out stuff in the system browser and then actually
>> implement things in the debugger?
>>
>> I find myself doing that sometimes, usually when I'm "on a roll" with what
>> I'm doing. I've never done that with another programming system.
>>
>>
>> On Fri, Jan 25, 2013 at 11:33 AM, H. Hirzel <[hidden email]> wrote:
>>>
>>> And interesting observation from
>>>
>>> http://worrydream.com/LearnableProgramming/
>>>
>>> Names matter.
>>> ---------------------
>>>
>>> Below are four array methods from Apple's Cocoa framework, and the
>>> equivalent JavaScript methods:
>>>
>>> Cocoa: addObject                          JavaScript: push
>>> Cocoa: addObjectsFromArray               JavaScript: splice
>>> Cocoa: arrayByAddingObject                  JavaScript:  concat
>>> Cocoa: arrayByAddingObjectsFromArray     JavaScript: concat
>>>
>>>
>>>
>>> On 1/25/13, H. Hirzel <[hidden email]> wrote:
>>>> Thank you for the links
>>>>
>>>> In particular interesting is
>>>>
>>>>    http://worrydream.com/LearnableProgramming/
>>>>
>>>> which is referenced from Bracha's blog entry.
>>>>
>>>> Interesting to see the evaluation of the Processing language and the
>>>> talk about metaphors.
>>>> E.g. the example of pasting the code for drawing a red flower.
>>>>
>>>>
>>>> --Hannes
>>>>
>>>> On 1/25/13, Frank Shearar <[hidden email]> wrote:
>>>>> First it was Gilad Bracha -
>>>>> http://gbracha.blogspot.co.uk/2012/11/debug-mode-is-only-mode.html -
>>>>> and now John Nolan -
>>>>>
>>>>> http://stigmergist.blogspot.co.uk/2013/01/debugger-first-vm-development.html
>>>>>
>>>>> I also saw a really neat demo of a framework for debugging system
>>>>> calls. I hope to find out more about this when I quiz the implementor
>>>>> in early February. I would be less vague if I could remember the name
>>>>> of the framework!
>>>>>
>>>>> frank
>>>>>
>>>>>
>>>>
>>>
>>
>>
>>
>> --
>> Casey Ransberger
>>
>>
>>
>

Reply | Threaded
Open this post in threaded view
|

Re: Everyone's talking about debuggers these days

Frank Shearar-3
On 25 January 2013 22:29, Casey Ransberger <[hidden email]> wrote:

> Inline, briefly.
>
> On Jan 25, 2013, at 1:55 PM, Frank Shearar <[hidden email]> wrote:
>
>> By "stub out stuff" do you mean "write a stub test case with self
>> assert: false"? *raises hand*
>
> Actually, I do that when I'm feeling responsible, as in I-might-want-to-use-this-more-than-once. More often though, I'm dinking around on Project Euler and plan to throw my code away, in which case I just paste in "self break."
>
>> Annoyingly, defining a #subclassResponsibility method destroys my
>> flow: the debugger won't, obviously, prompt you for that "create
>> method" button I love so much. (Hm, could one restore that with a
>> SubclassResponsibilityException that the debugger can catch?)
>
> I'm not sure what the right way to do that would be, but I feel your pain. Try it?

So of course by now we all know this works, and pretty easily too.
(Check out a plain 4.5 image and you'll see.)

What I find interesting in Phexample, and Gilad Bracha's "debug mode
is the only mode", and Lightable, and Bret Victor's demo, is... it's
all old news!

http://www.subtextual.org/OOPSLA04.pdf - "Example Centric Programming"
by Jonathan Edwards - describe's Lightable's instarepl (*) on the
first page! And it was written nearly a decade ago!

frank

(*) It's a two-pane screen. On the left is something a lot like a
Smalltalk Workspace - you write in your Clojure forms. On the right is
a pane that evaluates those forms as you type, printing their output.
So when you have only written "(+ 3 4" nothing happens, but as soon as
you complete the form with a ")", the right pane immediately displays
"=> 7". Even for someone used to a live environment (me), that was
startlingly enjoyable.

>> frank
>>
>> On 25 January 2013 21:47, Casey Ransberger <[hidden email]> wrote:
>>> Here's a fun little survey...
>>>
>>> Who here likes to stub out stuff in the system browser and then actually
>>> implement things in the debugger?
>>>
>>> I find myself doing that sometimes, usually when I'm "on a roll" with what
>>> I'm doing. I've never done that with another programming system.
>>>
>>>
>>> On Fri, Jan 25, 2013 at 11:33 AM, H. Hirzel <[hidden email]> wrote:
>>>>
>>>> And interesting observation from
>>>>
>>>> http://worrydream.com/LearnableProgramming/
>>>>
>>>> Names matter.
>>>> ---------------------
>>>>
>>>> Below are four array methods from Apple's Cocoa framework, and the
>>>> equivalent JavaScript methods:
>>>>
>>>> Cocoa: addObject                          JavaScript: push
>>>> Cocoa: addObjectsFromArray               JavaScript: splice
>>>> Cocoa: arrayByAddingObject                  JavaScript:  concat
>>>> Cocoa: arrayByAddingObjectsFromArray     JavaScript: concat
>>>>
>>>>
>>>>
>>>> On 1/25/13, H. Hirzel <[hidden email]> wrote:
>>>>> Thank you for the links
>>>>>
>>>>> In particular interesting is
>>>>>
>>>>>    http://worrydream.com/LearnableProgramming/
>>>>>
>>>>> which is referenced from Bracha's blog entry.
>>>>>
>>>>> Interesting to see the evaluation of the Processing language and the
>>>>> talk about metaphors.
>>>>> E.g. the example of pasting the code for drawing a red flower.
>>>>>
>>>>>
>>>>> --Hannes
>>>>>
>>>>> On 1/25/13, Frank Shearar <[hidden email]> wrote:
>>>>>> First it was Gilad Bracha -
>>>>>> http://gbracha.blogspot.co.uk/2012/11/debug-mode-is-only-mode.html -
>>>>>> and now John Nolan -
>>>>>>
>>>>>> http://stigmergist.blogspot.co.uk/2013/01/debugger-first-vm-development.html
>>>>>>
>>>>>> I also saw a really neat demo of a framework for debugging system
>>>>>> calls. I hope to find out more about this when I quiz the implementor
>>>>>> in early February. I would be less vague if I could remember the name
>>>>>> of the framework!
>>>>>>
>>>>>> frank
>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>>
>>>
>>> --
>>> Casey Ransberger
>>>
>>>
>>>
>>
>

Reply | Threaded
Open this post in threaded view
|

Re: Everyone's talking about debuggers these days

timrowledge

On 06-04-2013, at 3:13 PM, Frank Shearar <[hidden email]> wrote:
>
> What I find interesting in Phexample, and Gilad Bracha's "debug mode
> is the only mode", and Lightable, and Bret Victor's demo, is... it's
> all old news!


Some of us dinosaurs have been using the term 'debugging into existence' for thirty years and I'm not at all sure it was original then. I'm more the obsessive-compulsive sort that likes to stare into the depths of the Matmos until we have the basics - or even full scope - of the answer in our heads before rising from our meditation mats, ritually washing ourselves in the blood of java-weenies, and sinking a few lattés on the way to the keyboard-shrine.

tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Fractured Idiom:- PORTE-KOCHERE - Sacramental wine



Reply | Threaded
Open this post in threaded view
|

Re: Everyone's talking about debuggers these days

Frank Shearar-3
On 6 April 2013 23:48, tim Rowledge <[hidden email]> wrote:
>
> On 06-04-2013, at 3:13 PM, Frank Shearar <[hidden email]> wrote:
>>
>> What I find interesting in Phexample, and Gilad Bracha's "debug mode
>> is the only mode", and Lightable, and Bret Victor's demo, is... it's
>> all old news!
>
>
> Some of us dinosaurs have been using the term 'debugging into existence' for thirty years and I'm not at all sure it was original then. I'm more the obsessive-compulsive sort that likes to stare into the depths of the Matmos until we have the basics - or even full scope - of the answer in our heads before rising from our meditation mats, ritually washing ourselves in the blood of java-weenies, and sinking a few lattés on the way to the keyboard-shrine.

Sure. REPL/Workspace development. Or to be all new-fangled, starting
with a failing test that you debug into existence. (My own
preference.)

But there is still a qualitative difference between being able to
evaluate the expressions in your Workspace whenever you want, and
having them always evaluated automatically. (*) I didn't believe there
would be, but Lightable surprised me even though I "knew" what to
expect. Having said that, there isn't a Lightable mode for emacs, so I
haven't discovered the effect this might have on my programming flow.
(Lightable is, for the moment, only for Clojure, and I do all my
Clojure work in emacs because, well, why would you use anything else?)

frank

(*) I'll ignore the obvious problems of side effects: deleting things
on the file system, launching missiles and the like. In Smalltalk
that's a very, very big problem to solve (because of how baked in side
effects are in the standard libraries, and the code built on the
standard libraries), and we don't have an type/effect system to help
us identify same.

Reply | Threaded
Open this post in threaded view
|

Re: Everyone's talking about debuggers these days

Tony Garnock-Jones-3
On 2013-04-07 5:00 AM, Frank Shearar wrote:
> (*) I'll ignore the obvious problems of side effects: deleting things
> on the file system, launching missiles and the like. In Smalltalk
> that's a very, very big problem to solve (because of how baked in side
> effects are in the standard libraries, and the code built on the
> standard libraries), and we don't have an type/effect system to help
> us identify same.

Virtualizing the primitives (adapting standard CPU virtualization tricks
to the Smalltalk VM) might suffice (and would permit a bunch of other
really interesting stuff at the same time). Hmm, though enforcing
no-shared-memory might be a bit challenging.

Tony