|
Links
The Big Dogs:
InstaPundit James Lileks USS Clueless Eject! Eject! Eject! ![]() More Good Stuff: Amish Tech Support Andrea Harris Asymmetrical Information DailyPundit Dr. Weevil Happy Fun Pundit IMAO Ipse Dixit Ken Layne Kevin Whited (also here) The Laughing Wolf Little Green Footballs Matt Welch Occam's Toothbrush PhotoDude Samizdata.net ScrappleFace Sgt Stryker's Daily Briefing Silflay Hraka a small victory Thinking Meat The Truth Laid Bear Virginia Postrel VodkaPundit The Volokh Conspiracy Winds of Change Random entries from my Blogroll
Powered by Google
Archives
|
March 18, 2004
Why I Hate Scheme
jacob likes Scheme. I don't. If you care, read his piece on kuro5hin, then read on here for my reasons why. So Lisp/Scheme lacks iterative looping. How is this a good thing? Why is it necessary to grasp the idea of recursion in order to write a program that counts to ten? Call me a knuckle-dragging barbarian if you must, but it seems to me that any language where a beginner has to spend an hour in the Krell mind machine in order to grok how loops are done is a bad language. Easy stuff should be easy; obvious stuff should be obvious. Not "elegant", not "enlightened"... they should be plainly, stupidly easy to grasp. Perhaps it's just me, and my lack of familiarity with the language; but it seems to me that Lisp/Scheme is actually, inherently, harder to read and understand than procedural languages, on both syntactic and semantic levels. Yes, you can pack a lot of meaning into a small, tight knot of nested parens... again, how is that a good thing? Isn't the real purpose of programming not communicating with the machine in as few bytes as possible, but rather, communicating with other programmers with as few misunderstandings as possible? Is tail-recursive looping, bound within five layers of nested parens, really anybody's model of clarity? All right, I understand that there are some killer concepts lurking under the hood... higher-level functions, memoization, currying, etc. Yeah, I've seen Mark-Jason Dominus' talk at the Perl conference, I understand this. But why bury it within such impenetrable syntax? Why leave out something as basic as iterative looping, and then claim that this missing feature is a feature? Why post a "You must be at least this clever to ride" sign on the language? Why not package these advanced concepts in a more approachable form, alongside more conventional constructs? Moot question, I suppose; the Python and Perl 6 folks are doing exactly that. Posted by Kevin Shaum at March 18, 2004 11:55 AMComments
Post a comment
|
