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?
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.
>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?
This 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.
If 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.
"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.
I 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.
14 comments
[ 2.4 ms ] story [ 55.8 ms ] threadAlso, 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
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.
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?
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.
Of course the fact that there is a difference is the real problem Scheme has.
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.
If there's room for extra syntax, I think
for would be more useful.