Subject: Re: A Philosophical Diversion From: Erik Naggum <erik@naggum.no> Date: 1998/10/07 Newsgroups: comp.lang.lisp Message-ID: <3116778652183313@naggum.no> * trashcan@david-steuber.com (David Steuber "The Interloper") | First a doubt. I was told at work today that Lisp is not a real general | purpose language. Instead, it was a domain language only useful in AI | circles. The person who told me this is a very good programmer, so I | can't just dismiss what he says. On the other hand, he admits to only | knowing some Emacs Lisp just well enough to configure Emacs to his | liking. ignorance of Lisp is very widespread. for your enjoyment, something that floated my way via a friend from a MUD mailing list. (the name of the ignorant fuck is withheld so he can't find himself using Dejanews.) > > If lisp is the answer, it was a stupid question, or else you asked an > > aging CS prof. > Could you please provide some support for this opinion? 1. Functional languages are dead outside academia. Even IN academia, they're fading away quickly. 2. (1) is a goodly part of the salvation of mankind. 3. Lisp causes the early retirement of the parentheses on a keyboard. 4. Dynamic scoping is for chumps writing their first interpreters by hand, and if the chumps have any talent, even THEY won't use it. 5. Perl, Python, and a dozen other interpreted languages are far more expressive, have far more development done for/with them, and are far more widely known, and are likely to exist in 20 years. 6. Aging CS profs love Lisp because they were a part of the doomed minority who swore up and down that functional programming was the wave of the future. 7. Recursion is good for quicksort. This does not mean that recursion should be an integral part of every algorithm used on a computer. I'm reminded of Larry Wall's response to a major Lisp freak who was bitching about how Perl had stolen what he regarded as Lisp's rightful glory. He said something to the effect of: 'You've wasted a 25 year head start. Whose fault is that?' What he didn't say, but should have appended to his comment, is: 'on a language nobody wants.' note that he is wrong on _every_ count, yet _nothing_ will ever make him change his mind, least of all understanding what he's talking about. people like that abound. fortunately, they are so easy to spot that they are no danger to anything. they're just like those alternative medicine bigots who know zilch about medicine. | Isn't C++ better for performance reasons? there may be reasons for choosing C++, but performance is not among them. C has performance when well written. C++ has not really borrowed much from C when you look carefully and ignore the hype, and certainly not the simplicity that _allowed_ the perceived performance of C. note also that C++ requires a _huge_ run-time system, which you have stated that you don't want. so by your own criteria, C++ is inadmissable. incidentally, C is not that much of a performer, either, it's just that every statement causes few instructions in the compiled code, and so you breeze through the statements, but you don't get the return value any faster just because of this. Common Lisp generally runs faster than C++ code doing the same thing, although it is hard to write Common Lisp code that does as little as C++ code generally does. for instance, you have to work real hard and write a lot of code to crash a Lisp program, leak memory, return bogus values, ignore errors, etc, but if you want all that, Common Lisp probably runs a little slower than C++. can't imagine why you'd want it, though. oh, unless you're a C++ programmer afraid of unemployment. C and C++ are really great languages only if your biggest goal is just being safely employed, not solving anybody's problems. | So now I am looking at cmucl or clisp as my implementation language. | Then my coworker bursts my bubble with the statement that Lisp is just | not a mainstream language for the simple reason it is not general. Lisp ignorants will produce an amazing array of bullshit to defend their ignorance. they're like racists that way. | The other question. Is Lisp a lazy man's programming language? the intelligent work less than the stupid to get the same job done. the lazy just don't get the job done. big difference. | I have seen claims that Lisp source is typically much smaller than C++ | source. In theory, less source code means fewer opportunities for bugs. | I like that idea. Is it true? Is Lisp a more concise way of stating a | program? Is Lisp less prone to buggy code? errors in Lisp are of a fundamentally different type than errors in most other languages. for instance, explicit static typing is supposed to catch a lot of errors, but generally is just gets in the way of doing what you want, and doesn't catch any errors professionals make, anyway. | If Lisp is so great, why hasn't the programming world latched on to it as | the silver bullet to save everyone from growing complexity? because Lisp requires more intelligent programmers than C and C++ do. | Can someone please relieve me of my Fear, Uncertainty, and Doubt? you have nothing to fear but fear itself. just stop fearing. | Without the language, you can not think it. this is also why C/C++ programmers hate Lisp: what they generally want to do is a harder and much more verbose in Lisp, but what they don't know that they _should_ have done instead is a lot easier, but they will never think about it and won't have the conceptual framework to understand what you're talking about if you tell them. at some level, I think they do understand that what they're so proud of doing in C/C++ is really quite silly to begin with, and nobody likes feeling stupid, so blaming the agent of their understanding is better than just quitting the stupidity. | When it comes down to it, programming is the synthesis of math and | poetry. Thought gives birth to form and electrons learn to think. nice, but I think you need to find your way back to earth, now. :) #:Erik