[Seaside] [OT] Why use an image file ? (was Re: Seaside & Ruby
tonyg at lshift.net
Thu Sep 8 13:14:38 CEST 2005
seaside at fbeausoleil.ftml.net wrote:
> Please, I don't want to offend anyone ! I understand the concept behind
> the image, and I *really* want to like Smalltalk, but the image thing
> has stopped me every time. What I probably need are references as to
> *why* it is considered better to use an image instead of plain old files.
The problem is not the image, it is a problem to do with naming called
the problem of "ambient authority". Classes, global variables, and state
are all addressed by a flat namespace, and the names are not
well-chosen. The same problem is suffered in Java, although to a lesser
degree, even though their naming scheme is hierarchical, because class
equivalence is based on class names.
A modular smalltalk, where names for objects were just mnemonics for the
benefit of the programmer (the real "name" for a class might be a GUID,
or might even be based on its structure - leading to a structural
equivalence relation between classes, rather than a nominal one...),
would go a long way toward solving these problems.
Separate modules (or even separate *versions* of the same module) could
be isolated from each other to prevent interference, or could be
introduced to each other to allow collaboration. At the moment there is
no choice: all code and objects in the image are visible to all other
code and objects, via global variables. If a new version of a module is
loaded, it replaces the old one, even if it's slightly incompatible.
So what's going on is that the image-based nature of Smalltalk is
exposing a deeper problem of naming, which is present in most other
programming systems too, but which is usually obscured by shallower
problems which take up everybody's attention.
I guess with the notion of the image, Smalltalk has solved the problems
that take up so much of programmer time today, and lets them concentrate
on harder problems that programmers in lesser systems haven't even
really begun to notice yet :-)
Another way of looking at it is that Smalltalk has no notion of process
isolation, which "real operating systems" have had since almost the year
dot, and that it's suffering for it in the same way DOS suffered for its
lack of process isolation. Remember TSRs? The problems we had with those
are exactly the problems plaguing current Smalltalk systems.
 Tony Garnock-Jones | Mob: +44 (0)7905 974 211
 LShift Ltd | Tel: +44 (0)20 7729 7060
  http://www.lshift.net/ | Email: tonyg at lshift.net
More information about the Seaside