Subject: Re: Package Question From: Erik Naggum <erik@naggum.net> Date: Wed, 05 Dec 2001 04:55:34 GMT Newsgroups: comp.lang.lisp Message-ID: <3216516931977597@naggum.net> * Kent M Pitman | Yeah, they are mostly obsessed with producing armies of programmers | capable of writing reverse, just in case there's still a language that | doesn't have that capability. Heh. The often stupid exercises we find in introductions to (Common) Lisp may in fact be a _good_ reason for someone who is introduced to the langauge this way to avoid (Common) Lisp in the future. What _do_ they tell people but that (Common) Lisp lacks all useful features? Not only does the language impose a whole new way of thinking about things, it has a whole new way of doing all the stuff they learned in Algorithms 101. Real (Common) Lisp programmers love the language for the fact that they do _not_ have to implement everything from scratch. (If they wanted that, they would have chosen Scheme, and, indeed, most of the idiotic exercises in introductions to "Lisp" are really for Scheme.) I think this simple fact completely eludes those who write introductory books, because it is somehow not considered pedagogically kosher to assume that programmers are smart enough to pick up most of the simple things in the first lecture (nor to ignore those who do not). I do not think it is the parentheses or the prefix syntax that "drive people away" at all, but rather the annoying condescension towards new programmers in the books they are offered to learn the language from, as if they needed to learn how to implement basic algorithms, as if the prefix syntax and the parentheses somehow need to be over-focused on in an apologetic way. The trivial functions they are asked to implement is the kind of stuff they should be exposed to so they could _read_ good source code instead of having to write little toy versions that are broken. Also, if they read good code for these non-trivial things, they would understand just how good they are in practical use, which their own versions of them would frankly not be. Moreover, the real code to implement reverse and other useful functions may be vastly more complex than the usual simple stuff that people are confronted with, or implement, with real concerns about not wasting resources and being very efficient. After all, the reason we have a big language is so people can be relieved of doing everything with stone-age tools. To trust that everything is implemented well, however, one might need to provide programmers with actual source code and a demonstration how to make these things work correctly and efficiently. Franz Inc does this to paying customers, but I do not know how other commercial vendors do this. /// -- 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.