From ... Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!newsfeeds.belnet.be!news.belnet.be!news2.kpn.net!news.kpn.net!nslave.kpnqwest.net!nloc.kpnqwest.net!nmaster.kpnqwest.net!nreader1.kpnqwest.net.POSTED!not-for-mail Newsgroups: comp.lang.lisp Subject: Re: Fast graphics on Lisp References: <3BCEA753.E3902968@a.com> <9qmtj4$hq8$2@rznews2.rrze.uni-erlangen.de> <3BCF083C.9F32491F@albireo.lcc.uma.es> <20011018.121914.1605908235.5776@silnospamcon.com> <18e1cdb3.0110190604.14ec2f60@posting.google.com> Mail-Copies-To: never From: Erik Naggum Message-ID: <3212514409164194@naggum.net> Organization: Naggum Software, Oslo, Norway Lines: 45 User-Agent: Gnus/5.0808 (Gnus v5.8.8) Emacs/20.7 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Fri, 19 Oct 2001 21:06:52 GMT X-Complaints-To: newsmaster@Norway.EU.net X-Trace: nreader1.kpnqwest.net 1003525612 193.71.66.49 (Fri, 19 Oct 2001 23:06:52 MET DST) NNTP-Posting-Date: Fri, 19 Oct 2001 23:06:52 MET DST Xref: archiver1.google.com comp.lang.lisp:18225 * ibpratibha@yahoo.com (Pratibha) | I guess it's things like this that gives Lisp a bad name, Absolutely anything can be used to excuse Lisp's bad name. In truth, _every_ language has this kind of gotcha. Only Lisp gets a bad name because someone who are ignorant of them run into them. If you want to look for the reason behind the "bad name", you need to look much closer to home than the language. | I wonder if there is anything in optimizing compiler technology of the | last decade [...] that can detect and do something about this sort of | optimization opportunity. Well, it certainly doesseem that constant folding is not performed terribly often in Common Lisp compiler. For everything we can do with the language, it is actually hard to know when an expression will always return the same value. For instance, (length foo) of a list foo _may_ change if any cons cell reachable from foo is changed, and it is hard to prove that that cannot occur. However, calling a function repeatedly with the same argument that the _programmer_ does not think will change is not good style, and since Common Lisp is a language that implicitly trusts the programmer, philosophically quite distinct from most other language, if you do call the same function with the same argument repeatedly, you probably have a good reason to do so, and if you really did not mean to, you would not have done it to begin with. This trust issue is important, because it also means Common Lisp programmers need to trust their Common Lisp system more than other language users need to trust theirs. We also have the most trustworthy _standard_ in the whole industry, and most Common Lisp programmers are exceptionally conscientious, with few notable exceptions, and they are _actually_ programming in some other language, anyway. To a good Common Lisp programmer, a construction in your code that in any other language would be a common, boneheaded thing to do and _therefore_ subject to optimization, not criticism, by a much smarter compiler than most of its programmers, would cause a Common Lisp programmer to ask why you did it, the Common Lisp compiler to actually do what you told it to do, and some wise guy to quip that (bad) Common Lisp programmers know the cost of nothing. :) /// -- Norway is now run by a priest from the fundamentalist Christian People's Party, the fifth largest party representing one eighth of the electorate.