[racket] Racket vs Scheme, macros and new syntax

From: Ray Racine (ray.racine at gmail.com)
Date: Mon Nov 5 21:16:49 EST 2012

Don't worry it eventually makes a point ...

Long while back some odd stumbling upons resulted in my embarking on a
"what ever happened to Alan Kay" search.

According to Wikipedia.
On August 31, 2006, Kay's proposal to the United States National Science
Foundation <http://en.wikipedia.org/wiki/National_Science_Foundation> (NSF)
was granted, thus funding Viewpoints Research
several years. The proposal title was: Steps Toward the Reinvention of
Programming: A compact and Practical Model of Personal Computing as a
Self-exploratorium.[8] <http://en.wikipedia.org/wiki/Alan_Kay#cite_note-7> A
sense of what Kay is trying to do comes from this quote, from the abstract
of a seminar on this given at Intel Research Labs, Berkeley: "The
conglomeration of commercial and most open source software consumes in the
neighborhood of several hundreds of millions of lines of code these days.
We wonder: how small could be an understandable practical "Model T" design
that covers this functionality? 1M lines of code? 200K LOC? 100K LOC? 20K
LOC?"[9] <http://en.wikipedia.org/wiki/Alan_Kay#cite_note-8>

So ok, I figured, sort of like the Institute For Advanced Study for CS,
Southern California style, need to check it out and see what those genius
types been up to.  http://www.vpri.org/

I just clicked on the site and its been a few years but a lot of stuff is
no longer there.  Back then there was more on COLA, NILE and OMETA and such
(you can google and get some hits).  They were tools directed at the
original concept of minimal succinct code libraries of complex systems.
 The approach seemed to be the use a very, very high level domain specific
language capable of capturing targeted complex software domains.  Then
these high level DSLs are exploded to some runtime target via a power
pattern matching expander.  OMeta was an example of these "pattern
matching, object oriented, meta macro compilers."

Anyway I did play around with OMeta and did a few things, but if one looks
at the whole "What is Racket, there is no Racket" in the sense of design
your own language, parser, syntax, the macro/module system etc, current
Racket covers much of the same ground, and probably better than the VRI
tool suite.

There is not too many examples really pushing the envelope in this area in
the Racket system as of yet.  Redux, TR, are maybe the closest so far.
(Sorry Danny, your BF*K impl falls a tad short.)   One would have to
completely change their mode of thinking from I have a software problem,
let me sit down and code it in Racket with some DSL boiler-plate reducing
macros, to let me sit down in front of this blank workspace and green
field, top-down design a minimal succinct language which abstractly
captures the problem and then leverage the meta/macro to explode it out
into 1,000s of lines of runtime.

Anyway hard to describe, but if you poke around the remains of VRI at
Ometa, Nile, etc. you'll see what I mean.

On Mon, Nov 5, 2012 at 7:28 PM, Greg Hendershott
<greghendershott at gmail.com>wrote:

> Wow, talk about answers arriving at exactly the right time WRT having
> the questions first. This is incredibly helpful to me. For example
> barely 3 pages in and the lightbulb goes off re what is
> `syntax-local-value', and why. Looking forward to spending more time
> with this. Thank you.
> On Mon, Nov 5, 2012 at 5:09 PM, Matthew Flatt <mflatt at cs.utah.edu> wrote:
> > At Sun, 4 Nov 2012 11:31:04 -0800, Scott Klarenbach wrote:
> >> In other words, Is Racket simply a philosophy/convention of language
> >> oriented programming with convenient syntactic wrappers to this end, or
> >> does it more fundamentally extend Scheme to do things technically
> *impossible
> >> *in that language?
> >
> > The latter --- a more fundamental extension to Scheme.
> >
> > Here's our most recent attempt to explain:
> >
> >  http://www.cs.utah.edu/plt/publications/jfp12-draft-fcdf.pdf
> >
> > ____________________
> >   Racket Users list:
> >   http://lists.racket-lang.org/users
> ____________________
>   Racket Users list:
>   http://lists.racket-lang.org/users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20121105/a8ed59aa/attachment.html>

Posted on the users mailing list.