3 ms·
I tried learning Scheme, and it is like a foreign language. Everything is so different: the idiomatic style, constructs of choice, manner of solving problems. I
by sreque 17y ago
I tried learning Scheme, and it is like a foreign language. Everything is so different: the idiomatic style, constructs of choice, manner of solving problems. It's not just the parenthesis that throw me off. Plus, I don't like how the core language and library are organized at all. I think clojure got it much better in that regard. In the end, I don't feel it's necessarily worth it.
Scheme's primary advantages are that it has the most powerful compiler plugin framework which includes the most powerful macro system of any language, and it has the best language support for continuations. However, those two things alone have not been able to convince me to bite the bullet and force myself to code in Scheme for a year or more to really learn it, which is at least how long I think it would take to be comfortable in it.
- apgwoz 17y agoI disagree, an I think the PLT scheme people who are teaching programming via scheme to high schoolers and college freshmen would disagree as well. Scheme is fundamentally simple. There is virtually no syntax. Scoping is lexical, and makes obvious sense, and there are really only a few "keywords". In no time a programmer should be able to pick it up and write simple programs with it. It does take a while to truly master however, but you can get away without continations and macros for quite some time.
- sreque 17y agoOne of my professors is one of the maintainers of Scheme and one of the authors of DrScheme, and he's made us aware of their education efforts. One of the interesting things about those education efforts is that they compare the results of teaching people Scheme to teaching them C++. I certainly would rather learn programming with Scheme than with C++ as well! C++ is a horrible language to teach beginning programming. However, you can talk to me all you want about how easy Scheme is and may be for people new to programming, but that doesn't change the fact that I have a hard time learning it well enough to get things done as productively as I can with other languages and I've genuinely spent time trying. I've also learned plenty of other languages and learn them more thoroughly than most programmers I know, so I certainly am not incompetent. Therefore, I stand by my previous assertions.
- apgwoz 17y agoI encourage you to take a step back then, and read The Little Schemer. It focuses not on the high level cool things in Scheme, but instead putting forms together to create things you find in every implementation out there.