[plt-scheme] Why is Planet better than PLT archives?
On Dec 29, 2005, at 10:36 AM, Hans Oesterholt-Dijkema wrote:
> Now I've got a question too.
>
> Why must one use (require (planet ...)). Why not make
> a more intelligent mechanism, using (require (lib ...))?
It's an issue of namespaces. Requiring using the planet form means to
select from a package using planet's namespace, whereas using the lib
form means to use the standard collections namespaces. The main
reason for this division is that the collections are considered to be
more monolithic; there's no namespace collision, we assume that users
trust the entire library, and if a new version of a collection comes
out then a new version of DrScheme comes out with it. The PLaneT
namespace, on the other hand, is much more anarchic (though by no
means as anarchic as it can get): individual contributors can pick
any name they'd like for their directory names, files, and package
names without central coordination, we do not assume that people
necessarily trust packages implicitly (though unfortunately at the
moment you do have to apply your trust transitively when you make a
planet require), and not only do we not want to have to release a new
version of DrScheme whenever someone upgrades a planet package, we
even want users to be able to have multiple different planet packages
installed on the same system system at the same time. These are
different worlds that require different ways of naming things,
installing things, et cetera.
(That said, I think it would be possible to arrange things slightly
differently so that all library-type requirements would be handled
the same way --- but that way would have to be something more like
that planet way than the current library way.)
> I also noticed that a plt package for --all-users, when
> installed with 'planet --file ...' will get installed in the
> plt scheme system collects directories.
That's correct. The planet tools are designed to work only with
themselves; you'll get surprising results if you try to mix the
planet tools with .plt files created in other ways.
> And, what, if there's no internet connection? At my
> work I noticed that (require (planet ...)) will yield
> an unrecoverable error when not connected to the
> internet, which I think cannot be acceptable.
PLaneT only goes out to the internet if the package the user requires
isn't locally available. If you ask for a package that isn't on your
local system and you have no internet connection with which to get
it, that seems like a perfectly legitimate situation in which to
yield an unrecoverable error.
-jacob