An uncomfortable question
Andreas Raab
Andreas.Raab at gmx.de
Thu Oct 31 01:46:56 UTC 2002
Hi Dean,
Let me drop in a note here. Modules are no DLLs - they are not shared
runtime components. E.g., DLL-hell as we know it from Windows is due to
the fact that no developer can foresee what DLLs any customer may have
installed on his or her system at *runtime*. This is very different from
detecting and handling problems at *development* time.
Cheers,
- Andreas
> -----Original Message-----
> From: squeak-dev-admin at lists.squeakfoundation.org
> [mailto:squeak-dev-admin at lists.squeakfoundation.org] On
> Behalf Of Swan, Dean
> Sent: Thursday, October 31, 2002 2:33 AM
> To: 'squeak-dev at lists.squeakfoundation.org'
> Subject: RE: An uncomfortable question
>
>
> Colin,
>
> Consider the case where there are dependencies between the
> modules and more than one version of each module. The
> current effort of implementing modules is attempting to deal
> with these issues, and it is a non-trivial problem. It is
> also possible that because of certain interdependencies
> between different versions of different modules that some
> modules may become mutually incompatible. This situation is
> witnessed with MS Windows .DLL libraries quite often.
>
> One common effect is that some applications have to be
> installed on a Windows machine in a particular order in order
> for them to all function properly on the same machine. There
> can arise instances where because of different sets of .DLL
> versions required, a set of applications may not all function
> correctly on one machine.
>
> And regarding SqueakMap and DVS, realize that these are based
> on the monolithic image model. They are more or less fancy
> user interfaces to manage filing in the various change sets
> (I know I'm oversimplifying a bit, but the point is still valid).
>
> Of course, monolithic systems have the issue of shared
> namespaces which can make it difficult to make different
> packages play nice together in the same image, so like I
> said, the problem is non-trivial.
>
> While it would certainly be possible to produce an MPEG
> player image, with only the items necessary to play MPEGs,
> and a MIDI image with only the items needed for MIDI
> processing, and so on, factoring out the common components
> can be difficult. This is especially true when some
> "applications" use different versions of a particular
> component and rely on some characteristic behavior. A
> hardware example of this is the 4046 phase locked loop IC.
> It is a fairly standard part, BUT the Motorola Version and
> the Philips versions are incompatible in that the external
> timing components require different values to get the same
> frequency out of the two parts. The same kind of thing can
> happen in software.
>
>
> -Dean
>
>
> -----Original Message-----
> From: Colin Putney [mailto:cputney at whistler.com]
> Sent: Wednesday, October 30, 2002 8:03 PM
> To: squeak-dev at lists.squeakfoundation.org
> Subject: Re: An uncomfortable question
>
>
> Hi Dean,
>
> I'm not sure that I understand your concern. Modularizing the image
> would be a very good thing in my view of the world. In fact, I think
> it's required in order to build the kind of task-specific system you
> prefer.
>
> Modules would let us build custom images for specific
> purposes, rather
> than attempt to make the standard image flexible enough for any
> purpose. If I'm using Squeak for a web application, I don't need an
> MPEG player in the image. If I'm developing a MIDI
> application, I don't
> need Comanche.
>
> With the monolithic image, we get bitten coming and going. Not
> *everything* can be in the standard image, so we frequently have to
> file in additional classes to get the functionality we need. With the
> current system this a hassle, much more difficult than it
> needs to be.
> On the other hand, the standard image has a bunch of stuff that won't
> get used most of the time, and removing it from the image is a more
> than a hassle, it's a nightmare, not to be attempted by mere mortals.
>
> So by all means lets consider our goals carefully. I really like the
> scenario that's emerging from the interaction of SqueakMap and DVS. I
> hope that we can arrive at a very basic kernel in the image, with
> easy-to-install packages available from SqueakMap.
>
> Cheers,
>
> Colin
>
> On Wednesday, October 30, 2002, at 01:46 PM, Swan, Dean wrote:
>
> > What 3.3a is trying to do with modules is essentially
> opening the same
> > can of worms that has made MS Windows such a maintenance
> nightmare.
> > Modules are (more or less) equivalent to .DLLs and may end
> up with all
> > the associated issues. I don't know of any "good"
> solutions to these
> > problems, but as attractive as the "idea" of modules is, I am
> > personally content to stick with monolithic images for the
> forseeable
> > future.
> >
> > The whole concept of "software components" is IMO a fantasy
> propagated
> > by media hype that ignores all the realities of real world
> > engineering. In "real" hardware product designs, one often
> finds that
> > re-usability is more of a structuring concept than a hard
> reality. I
> > don't believe I've ever worked on a hardware design that didn't
> > involve some kind of custom connector that is a "slight"
> variation of
> > a "standard" connector, for example. (Just for context,
> I'm referring
> > to everything I've worked on in the last 12 years or so).
> >
> > I think the concept of a monolithic image constrains the
> reusability
> > myth to realistic proportions, and makes implementation
> possible. Too
> > much flexibility comes at a cost, which usually rears its
> ugly head in
> > the form of increased complexity, higher resource requirements, and
> > reduced preformance (relative to a less flexible implementation).
> >
> > As an example of what I'm talking about, I've worked on a couple of
> > different projects in the last few years where the end product has
> > similar capabilities but one was implemented using a "flexible,
> > reusable platform approach" and the other was implemented
> using a more
> > task specific approach.
> >
> > The flexible system has a source tree for the "platform" of about 5
> > gigabytes, generates a target image of about 170 megabytes,
> and needs
> > two 300 MHz PowerPC 603e's and 512M of RAM to run. This system has
> > hundreds of developers working on it.
> >
> > The "task specific" system has a source tree of about 300
> megabytes,
> > generates a target image of about 1 megabyte, and runs on
> one 66 MHz
> > PowerPC with 16M of RAM. This system had 4 developers
> working on it.
> > The end functionalities of these two systems is *very* similar.
> >
> > I'm not sure what my point is in all of this, but I think we should
> > consider our goals carefully in relation to the questions
> that Andrew
> > has raised. My preference is towards "lean and mean" rather than
> > "incredibly flexible, general purpose (and suboptimal)".
>
>
>
> Colin Putney
> Whistler.com
>
>
More information about the Squeak-dev
mailing list
|