Email list hosting service & mailing list manager


Re: problems with rationale & design felix 18 Jun 2004 22:49 UTC

bear wrote:
>
> 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.

a) nobody writes such large programs in Scheme (currently)
b) `load' is not restricted to interactive use

> 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.

What nonsense. Nobody is talking about command-lines here.
`load' is not necessarily restricted to source code (see R5RS), and
many implementations extend it to load compiled code. Additionally,
`load' was merely an example.
I use an equivalent of `require-extension' with separate compilation,
daily. I haven't yet found any problems with it. Extending it to handle
separately compiled modules is not a problem.

> 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.

Huh? What are you talking about?

>
> 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.

Tell me what PLTs `require' does. It works perfectly with
a module system. I don't see the problem at all. `require-extension'
does imply absolutely *nothing* about modules, yet it can be
compatible with them.

cheers,
felix