4 ms·
Real Criticisms of Scheme
- tsuyoshi 16y agoI haven't used Scheme in a while now, but I remember that in practice every implementation provided CL-style macros. I think the only reason it never became part of the standard, given that it's dead simple to implement compared to hygienic macros, is the whole attitude toward standardizing as little as possible.
- dstorrs 16y agoIt is worth noting that this is from 2006. Also, he missed the main problem with Scheme (and Lisp) IMHO: language fracturing. Want to use Scheme on your project? Not so fast! Which one? PLT Scheme? Chicken? MIT? DrRacket? Gambit? TinyScheme? ...the list goes on: http://en.wikipedia.org/wiki/Category:Scheme_implementations http://en.wikipedia.org/wiki/Category:Scheme_implementations Most of these are 95% interchangeable in terms of code, but there are a few differences here and there that make it hard (especially for newbies) to get help from Schemers using a different flavor.
- Locke1689 16y agoFYI DrRacket is an editor and PLT Scheme is now referred to as Racket.
- xiongchiamiov 16y agoDrRacket formerly being called DrScheme.
- dstorrs 16y agoTrue, my bad. It's been almost two years since I was working in Scheme, and I didn't check closely enough.
- kunjaan 16y ago>but there are a few differences here and there that make it hard (especially for newbies) to get help from Schemers using a different flavor. I don't understand the reasoning. Yes there are different variants of Scheme. All you have to do is look and ask for what you need. How does the difference make it harder for newbies to get help? Have you asked any questions in the mailing list for any of these implementations and not received a reply? Have you looked at what these languages even provide? Do you understand the difference between an editor and an implementation? What were the difference that you found confusing in the implementations? What were the criteria for your project?
- dstorrs 16y agoThis comes off sounding needlessly aggressive, but I'll answer anyway. I was trying to pick up Scheme, and I was using PLT Scheme (now Racket). I would ask on a Scheme list / IRC channel "how do I $FOO?" Someone would say "here's some code." That code would not work under PLT because the person in question was using a different implementation with slightly different syntax or language features. I would then spend some time figuring out the exact differences -- usually not long, but it was extra friction that made it harder to get over the learning hump.
- kunjaan 16y agohttp://groups.google.com/group/plt-scheme http://groups.google.com/group/plt-scheme
- rsheridan6 16y agoWhich Scheme? Most of these criticisms would not be valid for most Schemes.
- burgerbrain 16y agoIf you read the article, he says that he means Scheme, as in the language itself (RSR5 presumably? I'm not familiar with if RSR6 lacks these things too) Of course the fact that there is a difference is the real problem Scheme has.
- abecedarius 16y ago"Recently I have noticed a tendency in the Common Lisp community to criticize Scheme" That goes back at least to the mid-90s when I was following comp.lang.lisp. It seemed like Kent Pitman kind of pioneered this field of criticism, though I was never connected enough to be sure.
- thisrod 16y agoWhy does scheme have syntax for multiple values at all? (define (g x y z) ...) (call-with-values f g) means the same as (define (g . xs) ...) (apply g (f)), and it's longer. If there's room for extra syntax, I think (g . (f a b c)) for (apply g (f a b c)) would be more useful.
- rapacity 16y agomultiple return values can be optimized
- Locke1689 16y agoIf you want this stuff, just stop using an ancient Scheme implementation and pick up Racket.