Subject: Re: newbie asks: why CL rather than scheme? From: Erik Naggum <erik@naggum.net> Date: Sat, 22 Dec 2001 06:27:53 GMT Newsgroups: comp.lang.lisp Message-ID: <3217991270540462@naggum.net> * Kurt B. Kaiser | Of course Scheme is a Lisp! Of course Scheme is not a Lisp! | Scheme is, IMHO, a very clean language and easy to read. That | contributes to ease of maintenance. Of course you are a Scheme fan. Who could have _guessed_? | On the other hand, for the uninitiated, CL is pretty baroque [...] Of course you are a Common Lisp non-fan. Who could have _guessed_? | There must be many thousands of students being exposed to Lisp via Scheme | each year, and this number is increasing. They are not exposed to Lisp when they are exposed to Scheme. | Part of that tradition is to understand Scheme well enough to do a | (simple) implementation. This is one of the reasons that Schame is such a sucky language. Real languages are so hard to implement that it makes sense to have someone _competent_ do that job for you. You know, that division of labor thing that economists tend to think is so useful for advanced societies. And what do people implement? An interpreter that relies on the underlying compiler or interpreter, right? How _useful_ is that? If they spend a lot of time writing a _simple_ compiler and support libraries, etc, with a lot of stuff you simply cannot do in Scheme itself, they will discover how to bootstrap a system using another system. How _useful_ is that? _Why_ does the world need more Scheme implementations than programmers? | This _has_ to be be a win for the Lisp community, because it promotes a | Lispy way of thinking about CS. No, what it tells people is that the most important feature of "Lisp" is that professors get to annoy students with a stupid exercise to implement the language in itself. Scheme is a stupid, stupid thing to teach people who want to _program_. It is even more harmful to teach people who want to do research. It is yet more harmful to teach people who do not want to write programs for the rest of their lives. | Then when those kids gain the confidence to do something big, CL is | waiting! This is just plain wrong. Is MIT Scheme implemented in Common Lisp? Why not? Scheme is a way of thinking that differs from every other language on the planet, _including_ Common Lisp, which in important ways is a mainstream language with non-mainstream operator names. | Enough of the internecine warfare! Go back to your Scheme cave and the warfare will at least quiet down. | Just tell them, "OK, people, now you're ready to come over to the big | time, welcome!" This sillitude betrays a misunderstanding of the fundamental differences between Scheme and Common Lisp, which only Scheme freaks suffer from. Common Lisp people understand that Scheme is very different, since you can write Scheme in Common Lisp but not vice versa. I have seen _so_ much Scheme in Common Lisp from people who have been brainwashed in Scheme that it is in fact _the_ strongest reason for me to want Scheme to go to hell. _Unteaching_ Scheme victims takes longer than teaching a person who has never seen any Lisp at all to become a good Common Lisp programmer. There is an old joke about which platform Oracle ran best on (35 mm slide projector), but I think it might need to be revised: Q: Which platform is best for running Scheme? A: A blackboard. As long as Scheme is marketed as a Lisp, it must be fought by every other Lisp. Scheme may be closer to the "roots of Lisp", but if you want to write your project reports in the language of Beowulf, or Shakespeare, expect to be unemployed. Scheme is one of the strongest reasons people who have a fraction of a degree in computer science loathe Lisp and hate parentheses. For _real_ programmers who want to use large languages so their code can be small instead of re-implementing small languages and their own large libraries, Scheme is a silly toy, and it taints the whole Lisp family with its silliness. _Maybe_ if Scheme was taught differently and would be so kind as to avoid communicating bad things about the entire Lisp family, it would not be so bad. I am currently reading Structure and Interpretation of Classical Mechanics, and it is a _tremendous_ book -- it makes me want to return to calculus and analysis with Tom Apostol and Richad Courant and write a calculus book with Common Lisp and a graphics library to do 3D plots. But, again, Scheme is used to teach. This time, however, Scheme is used productively to teach mechanics, not mastubatorily to reimplement Scheme. /// -- The past is not more important than the future, despite what your culture has taught you. Your future observations, conclusions, and beliefs are more important to you than those in your past ever will be. The world is changing so fast the balance between the past and the future has shifted.