29/09/2008

Squeak Map and Package Universe - the fog clears

At little while ago, I asked the question - on the beginners' list - about whether Package Universe had now replaced Squeak Map as the place to look for software. I didn't get a response, at the time, which surprised me because the experts on the list are usually excellent at answering newbies' queries. Anyway, today Ralph Johnson answered a similar question, and I can see now that the situation is more complex that I had imagined. I am including his explanation for future reference.

> What I observed is that it is very hard to find the latest (working)
> packages within the tools provided (SqueakMap, Universe browser).

What you call "Universe Browser", I will call "Package Universe", or
PU. SqueakMap is SM.

SM and PU are comparable. SM is a lot older, and is nice because,
until a year or so ago, it had a pointer to pretty much everything
being distributed. Montecello (MC) is different. It is aimed at
development, not at distribution. For a long time people used MC for
development and SM for distribution. SM basically would point to a MC
repository with the version of the software you wanted. I think it
was called "SqueakMap" because it would be a map to everything in
Squeak.

The problem with SM was that it had no dependency information. It
would not try to load dependent packages, or even warn you that you
needed to load them. You could read the comments of a package and see
if it advertised that it was built on another package, but it was a
pain to build a large system with SM.

PU was an attempt to solve this, but it went a long way beyond
dependency information. Lex Spoon wanted a package universe to have
only packages that were known to work together. Thus, there would be
many package universes. Each one would be self consistent, but
packges from one universe might not work with those from another. In
contrast, there was only one SM.

PU has been around for several years, but it didn't get popular until
it got used for 3.10. its popularity had the obvious-in-hindsight
consequence of people putting their packages in it but NOT putting
them in SM. So, SM no longer has the latest and greatest of
everything. Moreover, PU tends to have lots of versions of each
package, which is entirely against the original purpose of PU, since
not all versions will work with every other. In retrospect, PU should
have used SM to find the latest version of a package. That would have
forced people to keep putting info in SM.

I am surprised that nobody has yet upgraded SM to do everything that
PU does. That would be one solution to the problem. Keith Hodges has
built something called Sake/Packages that lets you write scripts that
does everything that PU does, but that can do this upon SM, and has
proposed using this and SM instead of PU. One of the reasons that PU
got off the ground was the Lex Spoon built a few universes, and then
he got some people to maintain them. Perhaps someone needs to write
the Sake packages to get things started.

If you are using a fairly standard image, you should try using the
universe for the package and then complain to package authors when the
version of the package in it is out of date. If you use SM, complain
to package authors when the latest version is not in SM. The tools
are there, but people have to use them. Certainly they can (and
should) be better. But until they are better, we ought to use them as
best we can.

-Ralph Johnson

No comments: