[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: problems with rationale & design

On Fri, 18 Jun 2004, Felix Winkelmann wrote:

>For example: R5RS Scheme has `load'. Effectively that's all what we need,
>and `require-extension' is just a thin wrapper over it, probably doing
>some module-specific stuff (like an `import', or something similar).

Except that it isn't.

Large programs (millions of lines of code plus, like an OS kernel
or even a large application) simply can't be managed when your
only interface is (load). It is silly to even think about
developing them interactively.

The reason we don't see a lot of code that would benefit from a
better module system is that, lacking a better module system,
it is *IMPOSSIBLE* for such a program to be written.

I'll go even further; as long as many incompatible module systems
exist, no "critical mass" of code that can actually be used together
will appear so that someone can even begin to assemble such a program.

Module systems have become one of the "holy wars" of scheme;
everyone is passionate about the need, but there is little
agreement about what exactly is needed.

I think that it all comes down to a clash between development
styles.  I think any "requirement" or "extension" or "module"
language that doesn't support separate compilation misses the
point, but that's at least partly because I'm more interested
in large applications.  Other people, including you apparently,
think that a system that's hard to use from the command line
is too ugly for words.   And yet others will consider it broken
if it's not an enclosing form, which allows definitions to be
made in multiple different environments in the same input
stream, but which can't be used from the command line because
you want results before you type the closing paren on the
enclosing form.

So for the three ecological niches, there are three different
optimal solutions. People with different priorities can fight
about them forever, fruitlessly, all convinced that the others
are "just wrong."  And that, yet again, is what I expect to
happen here.  You've just started round N plus 1 of the *&$%
holy war that will not die.  Congratulations.

I regard this SRFI as a futile act.  It will do nothing to
convince the partisans on any of the sides of this issue,
it provides essentially the same thing as SRFI 1, and all
discussion of it is doomed to devolve into a shouting match
where eventually each participant concludes that he alone
is right and that all others are deluded.  In other words,
it didn't help.