Xref: utzoo comp.lang.c++:1650 comp.lang.smalltalk:692
Path: utzoo!attcan!uunet!tektronix!tekcrl!tekgvs!jans
From: jans@tekgvs.GVS.TEK.COM (Jan Steinman)
Newsgroups: comp.lang.c++,comp.lang.smalltalk
Subject: Re: OO debuggers
Message-ID: <3967@tekgvs.GVS.TEK.COM>
Date: 20 Sep 88 21:52:57 GMT
Organization: Tektronix Inc., Beaverton, Or.
Lines: 55
<>
<<...you should look closely at the generally available Smalltalk-80
debugger...>
I'm glad you have,and I agree that it is not without problems. The fact that
it is quite different than most debuggers is what I want people to pay
attention to. It's a matter of "execution state as an object" vs "rape and
pillage the process".
<<...execution speed, the least important metric in the present "software
crisis"...>>
(Boy, am I catching flak for this statement!)
<...one of the important properties of a debugger is that it has minimal effect
on the observable run-time behaviour of one's program. Smalltalk's debugger...
falls over here. Having to wait a minute for the debugger to simulate a method
that usually concludes in 200mS is unacceptable -- especially if you are not
informed of the delay in advance.>
(More specifically, the Smalltalk-80 V2.2 debugger from PPS.) I plead the
ultimate cop-out, "it's an implementation detail." It's unfortunate if anyone
has formed an impression of Smalltalk performance based on the debugger. The
Tektronix Smalltalk debugger runs at full execution speed, while the original
Version 2 debugger (and PPS follow-ons) interpret (in Smalltalk) the executing
method. I do not know how Smalltalk-V handles this, although I have heard good
things about their 286-version debugger.
But I digress. Henry Spencer would turn this discussion into a
Smalltalk-bashing session, and seems to be unwilling to discuss the
shortcomings of C++ when used for OO. I'm unwilling to be pressed into
defending Smalltalk, rather I'm saying, "Why aren't all you C++ object-oriented
neophytes looking at the rich body of OO knowledge that has evolved in
Smalltalk?", with the debugger as an example.
And also with the debugger as an example, I'm pointing out that C++
inadequately addresses Smalltalk's greatest strengths: rapid prototyping and
incremental development. Smalltalk excels at the "make it work, then make it
fast" model of development, whereas it appears to me that C++ is heading in the
direction of more up-front design work, and less in the direction of promoting
evolutionary development.
I can only laugh sadly when I hear the unspoken undercurrent: "Now that C is
object-oriented, there's no longer any need for Smalltalk.", and am dismayed
that a whole generation is doomed to think C++ synonymous with
object-orientation. ("Huh, what's Smalltalk?") I am gratified that Jan Andrew
Purchase is taking a larger view than most OO newcomers have taken.
:::::: Software Productivity Technologies -- Experiment Manager Project ::::::
:::::: Jan Steinman N7JDB Box 500, MS 50-383 (w)503/627-5881 ::::::
:::::: jans@tekcrl.TEK.COM Beaverton, OR 97077 (h)503/657-7703 ::::::