[racket-dev] thoughts?

From: Eli Barzilay (eli at barzilay.org)
Date: Mon Oct 4 10:09:37 EDT 2010

As briefly as I can:

0. I've seen one very big OCaml program.  One thing that surprised me
is when one day I wanted to follow how a specific piece of
functionality was done.  I grabbed the relevant file, then the file
that it required and so on -- that specific piece of functionality was
spread over so many files that it made it very difficult to track.
By then I knew very well that the type system helps you when there are
changes to the code -- you'd get it to tell you about most places that
need to change too.  What I realized (by surprise) is that this
backfired at the big-project scale: the code was working fine, but it
was much less organized than big projects I've seen in dynamically
typed languages.

20 minutes ago, Matthias Felleisen wrote:
> Question 1: is it the macro-full-ness of our code that does it? Is
> it a lack of conventions? Is it the size of the functions/modules
> that we have?

So IMO macros are unrelated.

> Question 2: if you could pick three guidelines, what would you
> suggest to everyone else who contributes to the code base? (This
> isn't about 'if' indenting, though I have my thoughts on that, too.)

Thinking about module dependencies.  Not because of any silly
distribution issues -- but because they are (IMO) the way the system
is explained.  Modules work well on a small-scale with relatively
short pieces of code.  If you're not organized enough when you go up
from that level, you get a big and incomprehensible pile of "stuff".

          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
                    http://barzilay.org/                   Maze is Life!

Posted on the dev mailing list.