purchase@pyr1.cs.ucl.ac.uk (09/10/88)
I am currently conducting some research into object oriented debugging tools and techniques. I have been surprised and disappointed to learn that most of the testing/debugging tools I have come across for OO languages seem to be merely poor conversions of procedure-oriented language debuggers. It is neither polite nor legal to mention any products by name, but with few exceptions, most OO debugging tools seem to be afterthoughts. I might be wrong, but I think that languages of a (relatively) new paradigm like OOP need *new* innovative support tools to back them. Does any one out there have any strong opinions about this? With this in mind, has anyone out there used a OO debug tool (or related utility) of any real merit? Do you feel that a tool should be specialized for the paradigm (or even language) which it supports? In connection with this, does anyone have the addresses (email or otherwise) of the following:- Norm Kerth (University of Portland) Dan Moore (US West) Both of whom submitted some interesting comments to the OO Tools workshop of OOPSLA 87. I would be eternally grateful for any help J.P. **************************************************************************** FROM: Jan Andrew Purchase | Snail: Room 208, PhD Lab., at : pyr1.cs.ucl.ac.uk | Computer Science Dept., | University College, | London, UK. | JANET: purchase@cs.ucl.ac.uk Usenet: {uk}!cs.ucl.ac.uk!purchase ARPANET: purchase%cs.ucl.ac.uk@nss.cs.ucl.ac.uk **************************************************************************** (these are my views, and are not necessarily those of UCL) ****************************************************************************
becher@argosy.UUCP (Jonathan D. Becher) (09/12/88)
In article <36300007@pyr1.cs.ucl.ac.uk> purchase@pyr1.cs.ucl.ac.uk writes: >I am currently conducting some research into object oriented debugging tools >and techniques. I have been surprised and disappointed to learn that most >of the testing/debugging tools I have come across for OO languages seem to >be merely poor conversions of procedure-oriented language debuggers. So we have poor conversions of poor products ... >It is neither polite nor legal to mention any products by name, but with >few exceptions, most OO debugging tools seem to be afterthoughts. I might >be wrong, but I think that languages of a (relatively) new paradigm like >OOP need *new* innovative support tools to back them. Does any one out >there have any strong opinions about this? You are not wrong - you are absolutely right. However, this lack of debugging tools is not confined to the OO domain. I defy you to show you one generally-available debugger that is the least bit "innovative". They all seem to be stuck in the Linton dbx mold -- i.e. dumb terminal textual rather than multiple window graphical (no offense Mark, but the time has come to move on). From what I can gather there are precious few people working on the debugging problem (Zellwegger and Cargill are exceptions). >With this in mind, has anyone out there used a OO debug tool (or related >utility) of any real merit? No (see above). In my humble opinion, gdb+ doesn't even come close. (Although, admittedly, it's better than almost anything else). >Do you feel that a tool should be specialized for the paradigm (or even >language) which it supports? Definitely. >FROM: Jan Andrew Purchase >JANET: purchase@cs.ucl.ac.uk Usenet: {uk}!cs.ucl.ac.uk!purchase > ARPANET: purchase%cs.ucl.ac.uk@nss.cs.ucl.ac.uk Jon Becher ARPANET: becher@cs.duke.edu Duke University OR argosy!becher@decwrl.dec.com Department of Computer Science (currently on leave)
jans@tekgvs.GVS.TEK.COM (Jan Steinman) (09/13/88)
<<I am currently conducting some research into object oriented debugging tools and techniques. I have been surprised and disappointed to learn that most of the testing/debugging tools I have come across for OO languages seem to >be merely poor conversions of procedure-oriented language debuggers. >> <...this lack of debugging tools is not confined to the OO domain. I defy you to show you one generally-available debugger that is the least bit "innovative".> Unfortunately, C++ has taken the language veneer of object-orientation, just as the Macintosh took the user-interface veneer. Unless you narrowly define "generally-available" as "one I can use on an arbitrary Unix object file", you should look closely at the generally available Smalltalk-80 debugger, or even the less capable, but more generally available (meaning cheaper), Smalltalk-V debugger. (I think "generally available" means you can buy it for a reasonable price for the most popular computing platforms.) C++ has a lot of catching up to do, but it seems to be evolving strictly in the incestuous C-Unix environment. It currently provides nowhere near the productivity nor capability (except in execution speed, the least important metric in the present "software crisis") of even a moderate Smalltalk implementation, nor will it as long as people are thinking of dbx as the model to improve upon! C'mon, guys, if you're going to make things better, at least start with what was state-of-the art in 1980! :::::: 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 ::::::
reggie@pdn.UUCP (George W. Leach) (09/13/88)
In article <3930@tekgvs.GVS.TEK.COM> jans@tekgvs.GVS.TEK.COM (Jan Steinman) writes: >In article: <37100002@pyr1.cs.ucl.ac.uk> Jan Andrew Purchase >(purchase@pyr1.cs.ucl.ac.uk) writes: >><...this lack of debugging tools is not confined to the OO domain. I defy you >>to show you one generally-available debugger that is the least bit ^^^^^^^^^^^^^^^^^^^ >>"innovative".> Notice the operative adjective. >C++ has a lot of catching up to do, but it seems to be evolving strictly in the >incestuous C-Unix environment. It currently provides nowhere near the >productivity nor capability (except in execution speed, the least important >metric in the present "software crisis") of even a moderate Smalltalk >implementation, nor will it as long as people are thinking of dbx as the model >to improve upon! Tom Cargill's Pi (Process Inspector) debugger is a step in the right direction in the UNIX-C Domain. Unfortunately, it is only available on the research editions of UNIX. With bit-mapped displays becoming more prevelant these days, perhaps we shall see more efforts like this appear as commercial products. We need more than a fancy UI for dbx! See the following papers: T. A. Cargill, "The Feel of Pi", 1986 Winter USENIX Conference Proceedings, pp. 62-71. T.A. Cargill, "Pi: A Case Study in Object-Oriented Programming", OOPSLA'86 Conference Proceedings, pp. 350-360. -- George W. Leach Paradyne Corporation ..!uunet!pdn!reggie Mail stop LF-207 Phone: (813) 530-2376 P.O. Box 2826 Largo, FL 34649-2826
henry@utzoo.uucp (Henry Spencer) (09/13/88)
In article <10@argosy.UUCP> becher@zaphod.UUCP (Jonathan D. Becher) writes: >... They all seem to be stuck in the Linton dbx mold -- >i.e. dumb terminal textual rather than multiple window graphical... Outside the PC market, which is still struggling to escape from BASIC and assembler, the market for something that can run on an ASCII terminal is an order of magnitude larger than the market for something that demands graphics. There are still an awful lot of plain ASCII terminals in the world, like it or not. Mind you, the usual run of ASCII CRT terminals can do a lot more than the hardcopy-terminal model that most of the old debuggers use. -- NASA is into artificial | Henry Spencer at U of Toronto Zoology stupidity. - Jerry Pournelle | uunet!attcan!utzoo!henry henry@zoo.toronto.edu
henry@utzoo.uucp (Henry Spencer) (09/14/88)
In article <3930@tekgvs.GVS.TEK.COM> jans@tekgvs.GVS.TEK.COM (Jan Steinman) writes: >C++ ... seems to be evolving strictly in the >incestuous C-Unix environment. It currently provides nowhere near the >productivity nor capability (except in execution speed, the least important >metric in the present "software crisis") of even a moderate Smalltalk >implementation... Au contraire, execution speed is a major metric in the software crisis, although somewhat indirectly: it is important because lack of it leads to otherwise-promising software tools being rejected as impractical. Whether this is rational or not -- and personally I think there is much to be said for it -- it is the way things are. Smalltalk's performance problems, more than anything else, have given it its reputation of being a nice toy for researchers and nothing more. I don't think anybody would claim that C++ is as nice as Smalltalk, but it moves a useful distance in the right direction, and it does a much better job of meeting performance constraints that are considered non-negotiable in many applications. Let us not forget how C became a major programming language, while many prettier languages were forgotten, by being more practical. C++ is "the next C" in more ways than one. -- NASA is into artificial | Henry Spencer at U of Toronto Zoology stupidity. - Jerry Pournelle | uunet!attcan!utzoo!henry henry@zoo.toronto.edu
jans@tekgvs.GVS.TEK.COM (Jan Steinman) (09/15/88)
<<jans@tekgvs.GVS.TEK.COM (Jan Steinman)>> <henry@utzoo.uucp (Henry Spencer)> <<C++... provides nowhere near the productivity nor capability (except in execution speed, the least important metric in the present "software crisis") of even a moderate Smalltalk implementation...>> <Au contraire, execution speed is a major metric in the software crisis... because lack of it leads to otherwise-promising software tools being rejected as impractical... Smalltalk's performance problems, more than anything else, have given it its reputation...> This is close to what I was describing: <<C++ has a lot of catching up to do, but it seems to be evolving strictly in the incestuous C-Unix environment...>> Smalltalk is rejected for its reputation, not for anything based in recent fact. Most people who have seriously considered Smalltalk for projects, and then rejected it, have a slew of other problems with it, but they generally are willing to take a modest performance hit for what it buys them. Let's look at a few cases: Garbage collection: yes, it's a pain when it fires off in the middle of some critical code. It's more of a pain when, through "programmer garbage collection" you destroy an object that still has references, or when unused, undestroyed objects fragment memory space, or when a project runs over because destructor conventions were not followed consistently, none of which happens in Smalltalk. The solution is not to throw out GC as performance-costly, but to build better collectors, and to give users some degree of control. Most who gripe at GC would be satisfied with some kind of "don't you dare interrupt me till I'm through with this stuff" directive. Run-time binding: in my opinion, any C++ application that does not use virtual functions is not object oriented, and those that do are difficult to design, and often lack the flexibility of true polymorphism. In Smalltalk, the programmer doesn't even have to think about it -- it just happens. By dispatching through function tables instead of truly implementing run-time binding, C++ gains only slightly. Typical Smalltalk run-time binding enjoys a 97% method cache hit rate, negating most of the arguments of those who claim run-time binding is a major performance bottleneck. Byte-code interpretation: this is the one that makes C++ers laugh! How dare anyone use a system that "wastes" so much time simply figuring out what it has to do! However, look what it buys Smalltalk: incremental compilation (yes, I know there are other ways to do this, why doesn't Unix/C do them?) and true object-oriented control over the execution state. It can be argued that the first (in combination with run-time binding) is a major source of productivity in Smalltalk -- you can change and run a method of a moderately sized application ten times in the time consumed by one C++ edit-compile-link-run cycle. I don't expect those who's experience is limited to "traditional" debuggers to truly understand the enormous power the latter gives you: to carry on a dialogue with an execution state is much more than finding new ways of changing memory locations and breakpointing! Hardware is getting faster and faster. Let us be reminded that the first FORTRAN compilers were greeted with contempt by those who said they wouldn't produce adequately performing code. "Adequately performing" is a relative constant in many, many fields, and the leaps in performance that hardware is giving us should be put to use reducing the software life-cycle cost. If a spreadsheet that took two months to build in Smalltalk performs just as well as an identical one that took two years to build in C++, who cares if some interpreter somewhere is chewing up 15% of the cycles? By emphasizing "the performance issue", people do stupid things like make benchmarks run fast, rather than making systems more usable. The big win is an area that is receiving distressing little research or attention: hybrid systems. "Smalltalk as a controller" is showing big success with the work of Dave Thomas at CMU and Dick Peskin at Rutgers, among others. Smalltalk appears to be ideally suited for rapidly assembling (an re-assembling) optimally performing "computational units", whether they be multi-processor nodes or snippets of assembly/C/C++ generated code. PPS shows little interest in this area, preferring to "protect their users from themselves", while Digitalk has provided the hooks, but is too busy shipping orders to put it all together. Tektronix is the leader here, but is unfortunately limited to Tektronix platforms through oppressive licensing. <Let us not forget how C became a major programming language, while many prettier languages were forgotten, by being more practical. C++ is "the next C" in more ways than one.> And just as C was "a smart assembler" before it, C++ is simply providing a prettier face for the same set of problems that are causing software costs to go out of control. I am not a Smalltalk chauvinist. It is not without its problems. I even happen to like Unix and C++. What I argue against is the narrow-mindedness that many in the Unix/C community show for "other" conceptual models; such thinking keeps them from even considering the next set of problems. (OK, I'd better say it: the above statements are my personal views only, and some of them most certainly do not reflect the views of Tektronix.) :::::: 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 ::::::
dannyb@kulcs.uucp (Danny Backx) (09/15/88)
> Tom Cargill's Pi (Process Inspector) debugger is a step in the right >direction in the UNIX-C Domain. Unfortunately, it is only available on the >research editions of UNIX. With bit-mapped displays becoming more prevelant >these days, perhaps we shall see more efforts like this appear as commercial >products. We need more than a fancy UI for dbx! See the following papers: > > > T. A. Cargill, "The Feel of Pi", 1986 Winter USENIX Conference >Proceedings, pp. 62-71. > > T.A. Cargill, "Pi: A Case Study in Object-Oriented Programming", >OOPSLA'86 Conference Proceedings, pp. 350-360. Does anybody have more references to papers on debugging ? Please send me (E-)mail. My special interest is debugging parallel/distributed programs. Any references to OO-debugging papers are appreciated. Danny Backx -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Danny Backx | mail: Danny Backx Tel: +32 16 200656 x 3544 | Katholieke Universiteit Leuven Fax: +32 16 205308 | Dept. Computer Science E-mail: dannyb@kulcs.UUCP | Celestijnenlaan 200 A ... mcvax!prlb2!kulcs!dannyb | B-3030 Leuven dannyb@blekul60.BITNET | Belgium
jans@tekgvs.GVS.TEK.COM (Jan Steinman) (09/15/88)
Oops! I bet Dave Thomas was suprised when he woke up in Pittsburgh this morning! In my previous article, I mistakenly affiliated him with CMU. Dave Thomas is with Carleton University in Ottowa. (Thanks to the readers who noticed the error.) :::::: 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 ::::::
henry@utzoo.uucp (Henry Spencer) (09/16/88)
In article <3941@tekgvs.GVS.TEK.COM> jans@tekgvs.GVS.TEK.COM (Jan Steinman) writes: >Garbage collection: yes, it's a pain when it fires off in the middle of some >critical code... Personally, I rather like the idea of garbage collection, although I'm not entirely convinced we know how to keep it under control. Note that there are experimental garbage-collecting allocators for C and/or C++. You don't need Smalltalk for that. >Run-time binding: in my opinion, any C++ application that does not use virtual >functions is not object oriented... Puh-leeze, let us not get back into the debate about what "object oriented" means. (Although I do tend to agree.) >... Typical Smalltalk run-time binding enjoys a >97% method cache hit rate, negating most of the arguments of those who claim >run-time binding is a major performance bottleneck. Well, I would point out that atypical cases are often a significant performance issue. Also, you miss another aspect of the difference: run-time binding makes compile-time checking a lot harder. This is not a trivial issue for production programs, which are supposed to be right *before* they are released. >...look what [interpretation] buys Smalltalk: incremental compilation (yes, I >know there are other ways to do this, why doesn't Unix/C do them?)... If you look around, you will find no shortage of people willing to sell you incremental interpretive environments for C. Now, how about showing me a high-performance compile-time-checked environment for Smalltalk? :-) >Hardware is getting faster and faster. The hardware installed in any given location gets faster only occasionally. There is still a heavy premium for getting maximum use out of a specific hardware configuration. >Let us be reminded that the first >FORTRAN compilers were greeted with contempt by those who said they wouldn't >produce adequately performing code... Let us be reminded that the first FORTRAN compiler was accepted mostly because those people were *wrong*: it *DID* produce red-hot code, usually equal to or even superior to what human assembly coders could do. Backus and his team at IBM worked long and hard to make this happen, and they are seldom given adequate credit for it. They knew what their customers' priorities were, and they knew that excuses like "hardware is getting faster and faster" wouldn't cut it. They not only invented the true compiler, they invented the super-optimizing compiler. >"Adequately performing" is a relative >constant in many, many fields, and the leaps in performance that hardware is >giving us should be put to use reducing the software life-cycle cost... As Mike O'Dell observed a while ago (roughly): "the machines keep getting faster, but somehow the response at my keyboard hasn't improved much". Too many of the improvements in hardware performance are being eaten up by software writers who assume that they don't have to care about efficiency any more. >... By emphasizing "the >performance issue", people do stupid things like make benchmarks run fast, >rather than making systems more usable. By emphasizing "making systems more usable", people do stupid things like building a system that has ultra-spiffy demos but bogs down hopelessly when you try to use it for real work. Ask Apple about the Lisa. >The big win is an area that is receiving distressing little research or >attention: hybrid systems... I agree that there is real promise there, although it's not clear to me that Smalltalk is the ideal upper-level language for it. ><Let us not forget how C became a major programming language, while many >prettier languages were forgotten, by being more practical. C++ is "the next >C" in more ways than one.> > >And just as C was "a smart assembler" before it, C++ is simply providing a >prettier face for the same set of problems that are causing software costs to >go out of control... You know, oddly enough, the people who tell me that C is "just a smart assembler" have a tendency to define anything that their pretty little language can't solve as "not a real problem", ignoring the fact that C copes with it just fine. The same silly remark can be made about most programming languages; it is no more true for C than for the rest. By the same token, Smalltalk is just smart BASIC, a prettier face for the problems that have kept interpretive languages out of mainstream production programming. >I am not a Smalltalk chauvinist. It is not without its >problems. I even happen to like Unix and C++... Actually, I'm not a C/C++ (Unix has little to do with this) chauvinist either. Smalltalk has its points. Unfortunately, while the C community has a lamentable tendency to stress efficiency and disregard the importance of easing development, the Smalltalk community tends to go the other way, stressing easy development and ignoring the quality of the result. There is an important distinction here: easy development of a program is valuable (and getting more so all the time), but adequate performance of the result is often a *constraint*, i.e. a non-negotiable requirement that absolutely must be met. To some extent the difference is a matter of perceptions rather than deep underlying need, but that *is* the way things work today. -- NASA is into artificial | Henry Spencer at U of Toronto Zoology stupidity. - Jerry Pournelle | uunet!attcan!utzoo!henry henry@zoo.toronto.edu
reggie@pdn.UUCP (George W. Leach) (09/16/88)
In article <1988Sep15.200651.18802@utzoo.uucp> henry@utzoo.uucp (Henry Spencer) writes: >As Mike O'Dell observed a while ago (roughly): "the machines keep getting >faster, but somehow the response at my keyboard hasn't improved much". Too >many of the improvements in hardware performance are being eaten up by >software writers who assume that they don't have to care about efficiency >any more. Another factor eating away at the improvements in hardware is the increased functionality we expect from them. We now have graphical user interfaces, expert systems and relational databases to contend with. These all consume resources. The systems we are building are far more ambitious than those built years ago. The more powerful you make the tools the more applicable those tools become to difficult problems. -- George W. Leach Paradyne Corporation ..!uunet!pdn!reggie Mail stop LF-207 Phone: (813) 530-2376 P.O. Box 2826 Largo, FL 34649-2826
purchase@pyr1.cs.ucl.ac.uk (09/17/88)
KEY: >>> Written 09:37 pm Sep 9, 1988 by purchase@uk.ac.ucl.cs >> Written 12:47 am Sep 12, 1988 by becher@argosy.UUCP > Written 07:19 pm Sep 12, 1988 by jans@tekgvs.GVS.TEK.COM >>>I have been surprised and disappointed to learn that most >>>of the testing/debugging tools I have come across for OO languages seem to >>>be merely poor conversions of procedure-oriented language debuggers. >>So we have poor conversions of poor products ... >>>I might be wrong, but I think that languages of a (relatively) new paradigm >>>like OOP need *new* innovative support tools to back them. Does any one out >>>there have any strong opinions about this? >>You are not wrong - you are absolutely right. >>However, this lack of debugging tools is not confined to the OO domain. >>I defy you to show you one generally-available debugger that is the least >>bit "innovative". They all seem to be stuck in the Linton dbx mold -- >>i.e. dumb terminal textual rather than multiple window graphical (no >>offense Mark, but the time has come to move on). From what I can gather >>there are precious few people working on the debugging problem >>(Zellwegger and Cargill are exceptions). I could not agree more. During my preliminary literature survey I noticed a distinct lack of any truly innovative work after 1985. With the exceptions of Bruegge and Cargill. One of my colleagues conducted a survey (amongst colleges in London University) which showed that 40% of programmers *never* use debuggers and of these who do 25% consider that they are not very useful because they are: too cumbersome to use; are too difficult to learn and have inadequate user interfaces. The lack of good tools, OO or otherwise, is a problem. >>>With this in mind, has anyone out there used a OO debug tool (or related >>>utility) of any real merit? >>No (see above). In my humble opinion, gdb+ doesn't even come close. >>(Although, admittedly, it's better than almost anything else). You mean you got gdb+ to work? I could get it to debug straightforward c++ but as soon as I used the methods-display command or any of the extra "OO facilities" it went spurious on me. >you should look closely at the generally available Smalltalk-80 debugger, or >even the less capable, but more generally available (meaning cheaper), >Smalltalk-V debugger. (I think "generally available" means you can buy it >for a reasonable price for the most popular computing platforms.) I have. I am preparing a few internal research reports on it now. Agreed its better than gdb+ and one could not even begin to compare it to dbx (or dbxtool) but it has its problems. >C++ has a lot of catching up to do, but it seems to be evolving strictly in >the incestuous C-Unix environment. Agreed. Sad isn't it? > ..execution speed, the least important metric in the present "software > crisis" ... I'm not sure I agree fully here. Although you are undoubtedly right generally, 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 (and one or two others I have used) 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. >C'mon, guys, if you're going to make things better, >at least start with what was state-of-the art in 1980! I'm working on it! >>> Jan Purchase >> Jon Becher > Jan Steinman Thanks for listening... **************************************************************************** FROM : Jan Andrew Purchase | Snail: Room 208, PhD Lab., at : pyr1.cs.ucl.ac.uk | Computer Science Dept., | University College, | London, UK. | JANET : purchase@uk.ac.ucl.cs ARPANET : purchase@pyr1.cs.ucl.ac.uk@nss.cs.ucl.ac.uk **************************************************************************** (these are my views, and are not necessarily those of UCL) ****************************************************************************
jans@tekgvs.GVS.TEK.COM (Jan Steinman) (09/21/88)
<<jans@tekgvs.GVS.TEK.COM>> <purchase@pyr1.cs.ucl.ac.uk> <<...you should look closely at the generally available Smalltalk-80 debugger...> <I have... but it has its problems.> 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 ::::::
scs@itivax.UUCP (Steve C. Simmons) (09/22/88)
In article <3967@tekgvs.GVS.TEK.COM> jans@tekgvs.GVS.TEK.COM (Jan Steinman) writes: >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. I'll bite. Is it something that can be adequately described in a usenet article? -- Steve Simmons ...!umix!itivax!vax3!scs Industrial Technology Institute, Ann Arbor, MI. "You can't get here from here."
mhyman@cup.portal.com (09/22/88)
In article <3967@tekgvs.GVS.TEK.COM> jans@tekgvs.GVS.TEK.COM (Jan Steinman) says: >.... 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. What am I missing? I can use both languages in either mode. I am able to prototype quicker in Smalltalk but that does not stop me from prototyping in C++. I also believe in "Growing a program" (See No Silver Bullet by Fred Brooks, printed in several journals). Using C++, or C, or any other compiled language just means more compilations. Marco S. Hyman mhyman@cup.portal.com ...!sun!portal!cup.portal.com!mhyman
henry@utzoo.uucp (Henry Spencer) (09/23/88)
In article <3967@tekgvs.GVS.TEK.COM> jans@tekgvs.GVS.TEK.COM (Jan Steinman) writes: >... 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... "If you don't want flames, don't be inflammatory." Let us discuss how, specifically, Smalltalk is better, not rant about how lousy C++ is. Nobody, including me, claims that C++ is perfect. It is a small step in the right direction, and by the looks of it, the market is much more willing to accept a small step than a large one. If there are ways in which that small step can be made a bit larger, I for one would be interested to hear about them. It may not be too late to improve the situation. Please don't just say "C++ is crummy and everyone should run right out and spend lots of time and effort learning about Smalltalk before saying anything more". I, for one, don't have time to do that just now. You've already made that effort; how about sharing some of your knowledge with the unwashed masses? -- NASA is into artificial | Henry Spencer at U of Toronto Zoology stupidity. - Jerry Pournelle | uunet!attcan!utzoo!henry henry@zoo.toronto.edu