Modular Squeak

Paul Fernhout pdfernhout at kurtz-fernhout.com
Sun Mar 11 04:50:03 UTC 2001


Roger Vossler wrote:
> 
> Hi Gang,
> 
> "Large monolithic images" versus "a small core plus a collection of
> modules or plug-ins" are two very conflicting design approaches.

Agreed.

> Component frameworks are fiendishly difficult to do right. The
> only semi-successful one of which I'm aware are Visual Basic, CORBA,
> Java, and COM/DCOM. And look what they have become. Plus, I've had
> my share of hassles with extension conflicts on my Macintosh and
> I understand that the Microsoft crowd has something comparable
> called DLL Hell. I don't know what the UNIX version is called. :-(
> [SNIP]
> Well, I'm not getting used to it; it's a pain in the ass; and life
> is just too short for this kind of nonsense. If Modular Squeak can
> guarantee that it will not evolve into the swamps indicated above,
> I'm all ears. OTOH, the odds of that happening are not all that great,
> so we can better spend our time on other pursuits.
> Cheers, Roger.....

Perhaps if those systems had not been modular they would long ago have
faded away into obscurity. The price they all pay for success is trying
to reconcile a diversity of developer efforts. 

(Except for Windows -- DLL hell was completely unneeded if IBM/Microsoft
had made a registry for DLLs in OS/2 and windows (like Apple's registry
for creator IDs) and had allowed access by name and version back in the
late 80s. I remember reading the OS/2 1.0 documentation for DLLs around
1989 and thinking -- expecting all DLLs to be backwardly compatible was
asking for trouble, as was assuming no two companies would release a DLL
with the same name.)

I submit as one alternative OTI's ENVY for Smalltalk. 
  http://c2.com/ppr/envy/
That system keeps track of allowable prerequisites for a module and
mkaes sure the prerequisites are loaded before loading a module -- and
will also warns about conflicts. However, that is not a runtime loading
system, rather it is one used by the developer during the image building
process. 

Python accomplishes quite a bit by just using import statements in
modules to load other modules from disk into memory as needed (as well
as into the local namespace). This doesn't address version conflicts
though. But it does enforce a sort of discipline on developers to think
about what functionality belongs together in a module.

-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