[PRL] Code's Worst Enemy

Matthias Felleisen matthias at ccs.neu.edu
Sun Dec 23 10:11:37 EST 2007


On Dec 23, 2007, at 12:27 AM, William D Clinger wrote:

> Riccardo wrote:
>> But the message I got was that any project that starts
>> small and grows over the course of ten years to hundreds
>> of thousand lines of code will almost inevitably be a
>> mess, irrespectively of the language....You have to
>> design for such sizes, and factoring out in libraries
>> and separate modules is key.
>
> Bingo.
>
>> Heck, SML/NJ was such a project, and its code was a mess
>> when I came to it.
>
> Other examples:  PLT Scheme.  Larceny.
>
> Both of those systems are cleaner than many, but there's
> plenty of mess in both.  Fixing the mess is Sisyphean.


I agree with all that. I do think academic projects have
a special problem here: with very few exceptions,
re-factoring is not something you can publish about and
yet it requires a huge effort. We can't just afford it
all.

Example: we re-designed the macro system N times and
re-wrote the core of drscheme with the new system. We
got one publication out of it, and that barely.

Example: we invented units, and they helped with a
lot of MVC-style code (functors wouldn't) and we
got one publication out of it. When we went to
modules, we got another.

And the entire system actually rests on the gluing
together of N separate existing libraries (lib scheme,
wx:windows, and a slew of others initially and over
the years more joined).

-- Matthias




More information about the PRL mailing list