Subject: Re: Waving the lambda flag again (was: Constants and DEFCONSTANT) From: Erik Naggum <erik@naggum.no> Date: 1999/04/01 Newsgroups: comp.lang.lisp Message-ID: <3131961221139730@naggum.no> * chucko@best.com (Chuck Fry) | Modern Common Lisp compilers allow me to tune the critical parts of my | code to within a few percent of C code, but without the pain of using a | fragile, brittle quasi-portable assembly language. just for the heck of it: I have tuned a _very_ CPU-heavy function I wrote in Common Lisp over a year ago so it went from the unsatisfactory 623 µs per call to the very pleasant 4.7 µs per call. the strictly equivalent C function that people are entirely _satisfied_ with, performance-wise, takes 92 µs per call. very frequently, I find that Common Lisp allows me to experiment with algorithms so much faster than I can in C and the like, so I can change methodology and approach as fast as they can do another optimization attempt. this means that a good Common Lisp programmer can find the optimal algorithm _and_ the optimal implementation in less time than the C programmer can find the optimal implementation. the C mind-set is that C is fast. this is even less true than their idea that CL is slow. writing really fast C code is _incredibly_ hard, and you might as well write it in assembly after you have seen what the compiler is doing to the overall code. I have squeezed the last drop of blood out of many a CPU in my time, but never has it been easier to do it than with Allegro CL with its instruction-level profiler, hackable LAP code (thanks, Duane!), and code transformation with compiler macros (a standard CL facility). this stuff just isn't available to C programmers. if you can't outperform C in CL, you're too good at C. #:Erik