A different way of doing Smalltalk development (was: Tales of Dying Objects)

Andrew C. Greenberg werdna at gate.net
Wed Jun 21 01:29:21 UTC 2000


Allen writes:

>While it is indeed possible with the appropriate tools to create 
>small footprint programs written using the Smalltalk language (or 
>even Java) I'm not at all certain that such tools actually solve 
>"the problem". In fact, I'm beginning to suspect that current 
>object-oriented languages, "methodologies", and tools naturally lead 
>to bloated, excessively coupled,  fragile "designs". (Of course, I 
>may just be overly grumpy from too much Java exposure but actually I 
>think not).
>
>Here's an example from the Java world but don't snicker, very 
>similar things occur with Smalltalk. I happen to have a 
>whole-program optimizing compiler for Java that will report 
>interesting statistics about the program it is compiling. So I 
>compiled the simplest possible "hello world" program at the highest 
>level of optimization using two different generations of core class 
>libraries

I am highly sympathetic to this argument, but I will observe this: 
the best language, measured by space heuristics, for writing a hello, 
world program is clearly going to be "C" or one of the more 
traditional, "bare on bones" programming languages with minimal tools.

So, what?

If the problem is to write a trivial text filter, or a "hello, world" 
filter, write it in Perl, C or the scripting language du jour.  If 
the problem, however, is the back-end of a highly data-intensive 
enterprise system, write it in some combination of a fine database 
system, a fine high-end development system (with lotsa' tools and 
built-in libraries) and be thrilled that your greatest costs  -- cost 
of human being developers and maintainers -- is minimized thereby, 
and the chances of failure due to greater clarity are likewise 
simplified.

In other words, use the right tool for the right job.

My first business was built on a program I wrote for a 32K (then a 
Cadillac!) Apple ][, Wizardry.  I was amazed after the memory-bloat 
of mainframe programming that we were again counting bytes, indeed 
bits, loading interpreters-on-interpreters to preserve space against 
time, and so forth, just to make a big game fit on a little machine. 
It was like going back to my first job of writing microcode on a 
little minicomputer.

**AND I LOVED THOSE DAYS**

However, I was amazed again how short the window was before memory 
and costs of hardware didn't matter any more (less than a decade).

Squeak **IS** clearly bloated, but not that awfully bloated.  A few 
megabytes of overhead for the clarity of a solid UI library and a 
solid development system is well worth the cost in most applications.

Sure, if we are coding for palm-pilots, go back to the old ways.  But 
for many real projects, particularly those that I have been working 
on lately, minimialism would be the kiss of death.  Indeed, it was -- 
many subsystems written on the metal in C are virtually useless and 
unmaintainable, but were trivially rewritten in bloatware in a matter 
of weeks.

So again, I sympathize with Allen's remarks, but I am not sure the 
tradeoff is worth making.  If the cost of minimalism is too great, 
perhaps we shouldn't pay the price.

I do not oppose the project, and am very interested in Allen's work. 
It would be a mistake to see my posting as gainsaying.  The real 
answer is a close balancing of concerns in view of particular 
projects and particular needs.  What I want to do with this message 
is simply to put the "other side of the story" on the table.
-- 
Andrew C. Greenberg		acg at netwolves.com
V.P. Eng., R&D, 		813.885.2779 (office)
Netwolves Corporation		813.885.2380 (facsimile)
www.netwolves.com

Please use werdna at mucow.com instead of werdna at gate.net





More information about the Squeak-dev mailing list