[plt-scheme] the *issue* of the planet module system

From: YC (yinso.chen at gmail.com)
Date: Thu Jan 14 18:22:39 EST 2010

Hi all -

I have been a happy planet user for quite a while.  AFAICT, it is the best
(if not, at least one of the best) module/repository technology available

But lately an issue comes to my mind and it's bugging me. Okay, the
repository is fine - it is the way that the module system distinguishes
between collects and planet.  Specifically, the planet modules are second
class citizens.

The collects modules today take precedences over planet modules, since they
are included in the distribution with a simpler syntax.  While this makes
sense technically, the implications are:

   1. Modules from planet will not be packaged into the distribution
   2. In order for the planet package to make it into the distribution, it
   will have to be *ported*
   3. collects modules cannot take advantage of code on planet
   4. collects modules cannot easily "retire" onto planet

This reduces code reusability, since if the core team wants to include a
package for distribution, they will have to port it, instead of just using
it via planet. And unless we are invited to join the core team, our planet
modules are not likely to make it there.

In CPAN, if the Perl distributors find a module useful, they can include it
with the language without fuss.  That means all CPAN modules are candidates
for eventual inclusion with no additional work on the module developer's
part, as long as others find their work usefully enough for
inclusion.  Many Perl modules started on CPAN this way and were eventually
included into the default distribution.

But for PLT you cannot do it without causing work (unless you want your
install to depend on live internet connection).  Say if Jay wants to reuse
some web modules from planet, he would have to "port" it, or rewrite it in
order to include it into collects.

In other words, the location "non-transparency" that module system has
erects a wall separating the PLT core team from the planet module
developers.  This impacts reusability both ways - core devs cannot take
advantage of planet modules verbatim, and planet modules will not be
included for distribution.

The reverse is also true, collects modules will not have the option to be
retired to planet if they are not found to be useful, since they weren't
designed to live on planet.

So - assuming reusability and community growth are important, and that the
core team does not want to port all useful planet modules in order to use
them, I would love to hear comments on this topic, whether I am just blowing
smoke or that it has merit, comments, etc.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20100114/bac2cb49/attachment.html>

Posted on the users mailing list.