On Wed, Feb 25, 2009 at 1:44 AM, John Cowan <[email protected]> wrote:
> Sam TH scripsit:
>
>> What does Scheme do well?  What does Scheme (not just RnRS Scheme,
>> but Scheme more broadly) have that no one else has?  It isn't lexical
>> scope - everyone but elisp has that, these days.  It isn't real
>> first-class functions - lots of languages have that too.  It isn't
>> proper tail calls - ML does that right.  It's not advanced compilers
>> for functional languages - those are a dime a dozen.  It's not even
>> first-class control, which a few other languages have.  And the REPL -
>> even Python has that.
>
> Well, feature by feature, yes.  But I personally believe that the
> combination of dynamic typing, eager evaluation, first-class control,
> and proper tail calls is a sweet spot that's unique to Scheme even
> without macros.

Certainly no other language has Scheme's exact constellation of
features.  But Scheme is missing some features that other languages
have, too - a compact syntax, a big batteries-included library (even
though I use PLT Scheme, Python has a bigger library), a
non-dysfunctional community, sympathetic ICFP program committees.

Without a killer feature, I would have to weigh each of these for each
project I might want to write - and Scheme would not necessarily win.
But with an enormously powerful feature that no one else has, it's no
contest.

>> So I say,  press our advantage.  Improve the macro system.  Show the
>> programming language world what the real power of "a very small number
>> of rules for forming expressions" is.
>
> Frankly, I continue to think that macro systems other than syntax-rules
> (which I agree is a great thing) are way too scary to use.

I hope you don't think that this is a necessary feature of procedural
macro systems, just that they haven't been presented in the
appropriate form.  But I do think that this is an indictment of those
of use who love Scheme's more powerful macro features, for not having
explained their usefulness or their usability.  Fortunately, work is
being done on this [1], but we clearly have a long way to go.

[1]  http://www.ccs.neu.edu/home/ryanc/macro-stepper/
-- 
sam th
[email protected]

_______________________________________________
r6rs-discuss mailing list
[email protected]
http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss

Reply via email to