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
