[racket-dev] RFC: Coding Guidelines

From: Noel Welsh (noelwelsh at gmail.com)
Date: Thu Sep 2 07:27:41 EDT 2010

On Thu, Sep 2, 2010 at 11:57 AM, Eli Barzilay <eli at barzilay.org> wrote:
> Well -- you do, in a sense.  When something is broken, someone needs
> to fix it.  There's tons of stuff that is (or has) bitrotting away
> since there's no proper owner to take care of some code, or bugs in
> code with no clear owner need to wait for someone to volunteer to do
> the work -- and that's less likely to happen.

Agreed. I think less stuff should be in the core, and this would go
some way to solving the problem. I think you want this as well.

To elaborate, I think Racket should still come with all the libraries
it currently does but 1) they should have versions like Planet does
and 2) they should be distributable independently of Racket core. This
way a particular library update is independent of updates to other
libraries or the core.


> My worry re ownership is that making a mess there will lead to more of
> these problems.  To make a concrete example, there's some unstable
> code now that is a big extension to a big library -- and if the
> theoretical plan where the unstable manager merges that code in, we
> get three people involved: (a) the original author of the library, (b)
> the author of the extension, and (c) the unstable manager.  Now what
> happens to bugs in the resulting extended library?  To me, this sounds
> like a recipe for one of those silly volleyball moments where the
> three players stand next to the ball with "I thought *you'd* pick it"
> looks.
> Because of this, I much rather see such extension getting in by (b)
> cooperating with (a) to get the extension in.  With the result being
> - (a) making sure he knows all the bits and becoming the owner of
>  the result;
> - (b) becoming the owner of the resulting extended library;
> - or deciding on a clear separation where the two parts are visible
>  (possibly involving work on either side), and the two maintain their
>  own bits.
>> > * "\"Primum non nocere\"" -- after looking this up (bad for such a
>> >   document), I strongly disagree with it.  IIUC, it reads as "if
>> >   it works, don't mess with it"
>> Idiomatically that would be "if it ain't broke, don't fix it". I too
>> strongly disagree with this.
> (Yeah, I saw that -- and the context that it's coming from is dealing
> with a very different kind of machine, where the rules are very
> different...)
> --
>          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
>                    http://barzilay.org/                   Maze is Life!

Posted on the dev mailing list.