I actually like CL, though I have some gripes with it: * Separate namespaces for functions and "non-functions" * No syntax-case macros, you have to use gensym (or packages?) to avoid capture * No call-with-current-continuation * CommonLisp hates the operating system, it wants to be its own operating system. Better may be worse but like it or not, when we're on unix we might as well take advantage of unixy stuff, not struggle against it. ** Pathnames * Minilanguages galore: format, loop... * ...and loop still can't (easily) do nested iteration like scheme srfi-42, you have to nest loops ''If you want SchemeLanguage, you know where to find it. (Apologies to DennisRitchie.)'' So you hate common lisp because it's not scheme, then. * Why, yes. Yes, I do. A lot of CL implementations these days have TailCallOptimization; can't there be a CL-like lisp that fix some of the other things? Especially the "lisp has to provide its own operating environment"-part, and call/cc. Much of Graham's OnLisp is portable to scheme, but he had to use scheme for the call/cc chapters. Hold on, I'm turning this into an anti-CL-flame which wasn't my intention. I just wanted to make a list of CL gripes. Some of them are matters of opinion (minilanguages, namespaces) but some are things that could be fixed. TheoVerelst I'm sure it has something to do with the braces... And newer languages like TclTk keep up with all the environmental idiosyncrasies and allow streaming IO and UI in a more general way. And people don't feel challenged to do real heavy programming challenges anyhow, like compiling parts of lisp and interfacing with other languages, which would make it more exciting. ---- CL's pathname stuff almost single handedly sent me running to Scheme. Sure, there's other stuff I like about Scheme over CL (single namespace, prettier function names, & call/cc), but lots of the programs I write need to interact with the FileSystem. I used the portable pathname API from PracticalCommonLisp, but I still spent an inordinate amount of time trying to mess with the file system in clisp. And PracticalCommonLisp gives me the impression that anything I managed to get working in this area probably would break if I moved the code to another CL implementation. Now, granted, there's no standard Scheme API for messing with file systems. Yet I don't have any trouble doing it with any of the three Schemes I use. But that's not really the point, because if Scheme weren't around, I'd probably end up choosing RubyLanguage over CL for this same reason. -- RobertFisher (...who doesn't really ''hate'' CL. Perhaps the only language I ''hate'' is CeePlusPlus, but it's a LoveHateRelationship. (^_~)) ---- CategoryRant