[PRL] Code's Worst Enemy
William D Clinger
will at ccs.neu.edu
Sat Dec 29 14:25:29 EST 2007
Matthias wrote:
> 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).
Mitch wrote:
> So, what can we do about this? If this is a (the?) Big Problem, shouldn't
> we be working on it?
Yes.
Matthias wrote:
> I consider it a real problem but not a 'grand challenge' type
> question. There is no single solution waiting that 'algorithmic'
> researchers (people who solve single individual problems) can work
> on. It won't attract the kind of attention that Hoare's 'grand
> challenge' will and it won't create the kind of funds that a grand
> challenge will. But it is honest work.
>
> I do consider the PLT Scheme effort a contribution to this problem. I
> also suspect that Larceny could be minded for bits of insight on this
> front.
>
> There is lots of work to be done and I actually think everyone on
> this list could work on some aspect of this problem without us
> trampling all over each other.
Here are four specific things we could do that would
greatly improve the portability of Scheme code as well
as interoperability with other systems:
1. Make sure our implementations of Scheme (PLT and
Larceny) implement the de facto standards for Scheme:
ERR5RS and R6RS as well as IEEE/ANSI and R5RS.
2. Teach our students to write portable code within
those standards, instead of encouraging them to use
implementation-specific idioms.
3. Develop an R7RS that actually enables portability,
instead of relying on an R6RS that merely claims to do
so.
4. Build on ERR5RS/R7RS by developing general-purpose
interfaces to non-Scheme libraries that can be made to
work in most ERR5RS/R7RS systems.
The four steps I have outlined above can be criticized
for being too inward-looking, because of their focus on
Scheme, but they are more outward-looking than a lot of
what we have been doing.
Will
More information about the PRL
mailing list