Newsgroups: comp.lang.smalltalk
Path: cantaloupe.srv.cs.cmu.edu!rochester!cornellcs!newsstand.cit.cornell.edu!portc01.blue.aol.com!news-res.gsl.net!news.gsl.net!news-peer.gsl.net!news.gsl.net!usenet.eel.ufl.edu!news.mathworks.com!nntp.primenet.com!cs.utexas.edu!howland.erols.net!newsfeed.internetmci.com!in2.uu.net!news2.new-york.net!not-for-mail
From: vlad@world2u.com (Vlastimil Adamovsky)
Subject: Re: [ALL] The danger of Smalltalk
X-Newsreader: Forte Free Agent 1.0.82
X-Nntp-Posting-User: (Unauthenticated)
Message-ID: <Dxuu69.4D4@news2.new-york.net>
References: <AAm9QFoS63@rrg.msk.su>
X-Trace: 842926399/5607
X-Nntp-Posting-Host: i123.131.world2u.com
Date: Tue, 17 Sep 1996 02:12:51 GMT
Lines: 121

Vsevolod Ilyushchenko <SimonF@rrg.msk.su> wrote:

>Hi all,

>I would like to raise a point about how the ease of Smalltalk programming
>makes the coding harder.

Wrong! It makes coding so easy that  you can easily create a huge
program, that is difficult to maintain, specially if you don't take
care to reuse what you already easily wrote yesterday.


>So, the simple Smalltalk syntax and the overall architecture do not hinder
>writing programs. I am free to create my own abstractions and modify them
>as often as I please. 

Digitalk ( once a small company) wrote in its newsletter several years
ago. that the advantage of Smalltalk is in possibility to gradually
add features so your program grows as you go. (Something like that. I
have the newsletter in self-storage in some box) 

>The problem is that the whole project becomes
>very big. I cannot keep it all in my head. 

Put it on paper.

>Unfortunately, I am losing the big picture. I forget about all the
>complicated interconnections of the different parts of my program.

Yes. It is real problem in well misdesigned programs.

>I try to write code in such a way that when I make a change, the places
>that are dependent upon it will at once blow up in my face with
>'self error:' and 'self halt'. Most of them do. 

Lucky man! On may computer Smalltalk sometimes reboots the machine
and if not it simply changes colors on my screen. (SmallalkV/Win32).
Nothing wrong with that kinda Smalltalk. It's only a program written
in that Smalltalk by some OO company.

>And then there is always that nagging feeling that somewhere I have missed
>the very important thing that will be immediately visible to the customer.

I used to program in a small dialog box. When an error had occured,
then it popped up and said: 
"You should never see this box!!!
 Contact Vlastimil Adamovsky"

It was good for PR. I got plenty of contacts that way.

>Or worse, that it will appear in some very rare circumstances and crash
>the whole system big time...

Smalltalk doesn't use pointers. Thus, it can not crash :-))

>It does not mean that I have lost my abstraction capabilities. Sometimes
>I step back and find the global issues that need addressing. But with the
>minor problems I far too often apply a quick fix that is usually quite
>sufficient. Usually.

Do you know the tale "Three piggs" ? 
Do you know what happened to them?

>I admit that most of this is due to my yet immature skills. But why do I
>blame Smalltalk? The thing is that back in the days when I was using C and C++,
>my approach to the problems was much more careful. I knew that without
>immaculate design it will crash, and the debugging will be a nightmare.
>In Smalltalk - what's the big deal? Let's crank out some code, and then
>use that Dictionary over there, and add a pair of new classes, put several
>'halts' in and see how it all actually works. Design? Well, I kinda
>know what I am going to do, so why bother with all those diagrams?
>Smalltalk can be so high level anyway, and I will use this dummy method
>and fill in the details later...

I fully support your point of view. I am serious.

>What's worse, I have noticed that my ability to understand math has
>deterioriated during this last year.

You don't need to. Ten years ago Digitalk Smalltalk could not handle
decimal point and it survived. And now you can get it for free!!!
Decimal point support included.

>I think that math requires
>a good deal of thinking about the matter before you start doing something,
>and hardly tolerates the 'prototype-then-think' approach.

Do you know a saying: "Shoot first, ask then" ? Some Smalltalk
programs, designed in a way you are describing, behave in that way.

>Well, I hope I have made myself clear. What I am looking for is a piece
>of sound advice, maybe from someone who has faced this or similar problem.
>I sort of know the general answers: be more systematic, write down what
>you are going to do and what you have done, good programmers produce only
>five lines of code a day and think all the other time... But Smalltalk
>is so alluring, it is so easy to slip just one more time, when it is
>absolutely clear what to do...

Your answer is correct and you got it. A correct design is more
important than a language you are using. 

>Do you think that Smalltalk is dangerous?

It is seductive, sexy and money-eating. But now when we have Smalltalk
express, it is not money-eating. And it is good. Still it is
seductive. It remains to see how sexy it is.

>Thanks,
>Simon

Nje za shto. S udovolstvyjem ja podelilsja svojim opytom.......







 Vlastimil Adamovsky
 ** C++ and Smalltalk consultant**

