Subject: Re: Polymorphism in Common Lisp From: Erik Naggum <erik@naggum.net> Date: Sat, 18 Aug 2001 11:42:46 GMT Newsgroups: comp.lang.lisp Message-ID: <3207123764972938@naggum.net> * Software Scavenger > What I want to do is make it as short and clear as possible to contradict > the claim that Haskell programs are shorter and clearer than Lisp > programs. Clearly, Haskell must have been used for something that Common Lisp can do better? Rather than let Haskell set the baseline, let Common Lisp set the baseline and try to show what long and verbose code Haskell needs to do the same thing. E.g., it, too, should do poorly for parsing XML. :) > But is that the best I could do? The Haskell version still seems > slightly shorter and clearer. Every language has been optimized for _some_ forms of expression. That you have found that Haskell is doing well in what it was clearly intended to do is hardly surprising -- there is absolutely no reason to think the Haskell people are idiots. The same goes for Perl. Of _course_ it wins hands down in the area of economy of expression for its intended tasks. The _real_ issue in these heavily optimized languages is whether there is a huge disparity of compactness for problems of similar complexity of abstraction and expression. This is where Common Lisp truly excels beyond _any_ other language. You may, and some do, complain that there is no super-compact expression of some particular problems, but what you completely miss is that the _penalty_ for thinking "outside of the box" or outside of the "intended" uses of the language is _also_ absent. Optimization of design has _huge_ costs in terms of what you can _not_ do efficiently. This factor is almost always ignored in language comparisons because people are happy to switch languages and so enjoy creating _new_ ones that they can optimize for some miniscule little featurette, until, of course, they run into the popularity problem and their languages grow so large that the time a human mind needs to learn to use it efficiently will have dwarfed any _real_ savings from economy of expression. But by all means, write qsort in Haskell and hello, world in C. I am not sure what you are going to _do_ what those two utilities, however. If you have a language that is good at demonstrating such things, maybe it has been optimized for demonstrations? At least one really huge software company has made the bulk of its earnings on its ability to demonstrate to other people that the real users what they could do. From the Latin word "imponere", base of the obsolete English "impone" and translated as "impress" in modern English, Nordic hackers have coined the terms "imponator" (a device that does nothing but impress bystanders, referred to as the "imponator effect") and "imponade" (that "goo" that fills you as you get impressed with something -- from "marmelade", often referred as "full of imponade", always ironic). I am not sure _exactly_ what about Haskell prompted me to tell you about those two Nordic hacker jargon terms, however. :) ///