Smalltalk & Squeak featured on Slashdot

Paul Fernhout pdfernhout at kurtz-fernhout.com
Thu Apr 19 14:19:08 UTC 2001


"Richard A. O'Keefe" wrote:
> 
> The student wrote:
> >>> The Squeak IDE is one of the most frustrating pieces of software
> >>> I've ever had to use.
> 
> Compared with what, I wonder?  

We're talking about two things, GUI building and development tools. As
far as building a window goes, I find Delphi or VisualWorks easier to
use. As far as browsing code, I'd agree almsot any Smalltalk system is
better than what the rest of the world has (especially when you have
ENVY).

> What is "Bloat"?  I would say that a piece of software is bloated if it
> does in 1MB what could be done in 2KB.  I would NOT say that a piece of
> software is bloated simply because it takes a lot of space; perhaps the
> space is used to good effect to provide useful services.
> 
> Squeak 3.0.1 has a 9MB image file.  Nine, not twenty.  Hey, 55% of the
> bloat trimmed away with a single glance!

Squeak 3.0 is 24.8 MB on my NT system. There is also the issue of the
sources and changes files... The image file is not intended to stand
alone, even if it can.

> Using MajorShrinkFor3.0.cs, the image can be slimmed down to 888K.
> (I know because I tried it.)  The VM and shrunk image together come to
> less than 2MB.  I don't call that bloated.

If you are using a verison of Squeak where shrinks works properly out of
the box (modularity again!) or have time to understand a lot of code you
just want to get rid of anyway. However, this can be a PITA when it
doesn't work properly the first time. It also imposes a testing burder
(full testing both before and after stripping). Example, I can almost
guarantee you without having looked at it that the majorShrinked package
you generated will generate walkbacks (due to the shrinking).

> So what we *actually* have in Squeak is a compact core (by today's standards)
> plus about 8MB of compiled library code.
> 
> Is an 8MB library "bloat"?  Well, compared with *what*?

The other examples you cite are big, agreed. I would never defend Java
as being compact. In my mind, the reference is Forth, where 64K of
source and binary goes a long way (although most Forth distributions
with GUIs top a couple of megabytes). 

I think "bloat" == "extra things I don't want right now". I don't want
Morphic for example (as much as I like many of the basic ideas and think
those have potential, if integrated with a permission structure) so for
me Morphic is "bloat". Having to remove something I don't want to be
there in the first place which is taking up lots of resources (say if I
want to just do text file manipulation) is an unneccesary burden.

> Erlang software is made of modules, and the system doesn't know anything
> about a module until it's loaded, so you can't use "reflective" tools
> to *find* modules.  You have to rely on PDF, HTML, or UNIX man-page
> documentation, and poking around with Emacs.

True, but having to look at an on-line directory on in Google for an
available interesting module or example hasn't ever really bothered me.

> Putting everything in the Squeak image *adds value for BEGINNERS*
> because everything is findable.

True to an extent, but it also adds clutter which can confuse a
beginner. It also raises the image stripping problem. I still think
loading modules on demand is better way to go in the long run.

Again, as I said in another post on this topic, we need both "mesh-work"
and "hierarchy" in Squeak. What might satisfy us both is a small core
available locally and an easy way to browse modules (and their code) on
a server remotely, with a clear way to know what module you were looking
at or had loaded, with easy loading on demand of something specifically
asked for, protected in such a way that you can only change a module if
you demonstrate somehow you really want to change it. Squeak is so close
to that (aside from permissions) -- except for the persistent naggin
thought such changes (e.g. making a small image as the core) would get
swept away as the SqueakC mainline roles on.

-Paul Fernhout
Kurtz-Fernhout Software 
=========================================================
Developers of custom software and educational simulations
Creators of the Garden with Insight(TM) garden simulator
http://www.kurtz-fernhout.com





More information about the Squeak-dev mailing list