From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset=windows-1252; format=flowed; delsp=yes Mime-Version: 1.0 (Apple Message framework v1075.2) From: Daniel Lyons In-Reply-To: Date: Fri, 4 Sep 2009 15:36:59 -0600 Content-Transfer-Encoding: quoted-printable Message-Id: <55D72913-15FB-415F-BE43-7D173E0AC449@storytotell.org> References: <542783.92348.qm@web83904.mail.sp1.yahoo.com> To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net> Subject: Re: [9fans] nice quote Topicbox-Message-UUID: 65439dc2-ead5-11e9-9d60-3106f5b1d025 Let me be a little pedantic. On Sep 4, 2009, at 2:18 PM, Eris Discordia wrote: > Above says precisely why I did. LISP is twofold hurtful for me as a =20= > naive, below average hobbyist. FYI, it's been Lisp for a while. > For one thing the language constructs do not reflect the small =20 > computer primitives I was taught somewhere around the beginning of =20 > my education. Like what? The if statement, which was invented by Lisp? The loop =20 statement, for expressing loops? It sounds like you got a dose of =20 Scheme rather than Lisp to me. > For another, most (simple) problems I have had to deal with are far =20= > better expressible in terms of those very primitives. In other =20 > words, for a person of my (low) caliber, LISP is neither suited to =20 > the family of problems I encounter nor suited to the machines I =20 > solve them on. This hasn't been true for a while. Common Lisp is a general purpose =20 language like any other. The only thing I have ever found obnoxious =20 about CL was the filesystem API. Most CL implementations are compilers =20= these days and they produce surprisingly efficient machine code. The =20 Scheme situation is more diverse but you can definitely find =20 performance if that's what you're eluding to. > Its claim to fame as the language for "wizards" remains. I think this has more to do with Lisp users being assholes than =20 anything intrinsic about Lisp. This is one of the nice things about =20 Clojure. It's a break from tradition in this regard, as well as many =20 others. > Although, mind you, the AI paradigm LISP used to represent is long =20 > deprecated (Rodney Brooks gives a good overview of this deprecation, =20= > although not specifically targeting LISP, in "Cambrian Intelligence: =20= > The Early History of the New AI"). One serious question today would =20= > be: what's LISP _really_ good for? That it represents a specific =20 > programming paradigm is not enough justification. Ideally, a =20 > language should represent a specific application area, as does C, =20 > i.e. general-purpose system and (low-level) application programming. It's as though you have the up-to-date negative propaganda, but not =20 the up-to-date facts. Lisp is "really good for" the same kinds of =20 things other general purpose languages are good for. The main benefits =20= it had in AI were features that came from garbage collection and =20 interactive development. You get those benefits today with lots of =20 systems, but that doesn't mean they aren't still there in Lisp. An =20 advantage it has these days is that it produces code that performs =20 better than, say, Python or Perl. I definitely would not call being a =20= "general purpose system" and suitability for "application programming" =20= a "specific application area." This is like saying agglutinative =20 languages are worse for conquering the world with than isolating =20 languages because the Ottoman empire fell before the English empire. Please don't interpret this as "Lisp kicks C's ass." I'm saying, =20 you're only seeing the negative half of the situation, and seeing too =20= much causality. I think it's mostly happenstance. Lots of languages =20 succeed despite having a killer app or app area. Python's a good =20 example. Isolating the exact ingredients for the success of any =20 language is probably impossible. I'd say only with C is it really =20 clear what led to success, and it wasn't exclusively features of the =20 language itself (though it was a part of it), but also that it came =20 with Unix along with the source code. If the quacks had chosen C =20 instead of Lisp for their "AI research" perhaps C would have taken a =20 big hit during the so-called AI winter instead of Lisp. Perhaps if the =20= Lisp machine vendors hadn't misunderstood basic economics so =20 thoroughly, their machines would have become more common and taken =20 Lisp with them the way Unix brought C. There are simply too many =20 variables to lay the blame at Lisp's alleged functional basis. =20 Especially today when languages like Haskell exist that take =20 functional so much further they make Lisp look like a procedural =20 language by comparison. =97 Daniel Lyons