[plt-scheme] Jane Street Summer Project 2009
On Mon, Feb 2, 2009 at 4:59 PM, Shriram Krishnamurthi <sk at cs.brown.edu> wrote:
>> Along similar lines, I'm uncomfortable with the idea that a programmer
>> should click a button to create a tree of files and start editing. ... I
>> hope we can find ways to remove directory hierarchies and other
>> boilerplate, instead of ways to generate boilerplate automatically.
>
> Hear, hear.
>
> Scheme macros are one of the very best ways of writing boilerplate.
> Given that, problems that require boilerplate should be turned into
> problems on macros+modules, not into boilerplate generators.
Consider info.ss. It needs to specify certain information. I've
written a lot of PLT Scheme packages but I can never remember what
that information is, so I always copy an old info.ss and edit that. It
would be useful to have a tool that generates an info.ss for me.
Perhaps you think that info.ss is the wrong thing ("things like
documentation or reader extension require files with the right name
(e.g., "info.ss")") but that information has be given somehow. Maybe
the package installation tools search for a module written in the
infotab language. The exact mechanism isn't particularly important.
The point is there are a bunch of things I don't do often enough to
remember how to do them, so it would be nice if I had a tool that did
them for me.
There are other things, like coding conventions, that could be
replaced with code. For example, Untyped code always has a file called
base.ss that defines the exception type used by that package when the
built-in exceptions aren't appropriate. (See e.g.
http://svn.untyped.com/snooze/trunk/src/base.ss or
http://svn.untyped.com/dispatch/trunk/src/base.ss) Making a
sufficiently configurable #project language (or whatever) to replace
all this stuff (there are a number of conventions we use) would be a
good project, I think.
N.