Python definitely seems to be the product of a very different design philosophy than Lisp. I've always felt it was too prescriptive. Omitting features that *might* be misused in an effort to keep the language simple seems to have backfired on them. Too keep up with the competition they've had to add so many new features to the core language (list comprehensions, annotations, iterators, with statement, properties etc) that Python doesn't feel like a small, simple language to me at all anymore. Anyway, I don't mean to pick on Python because it's not a bad language. I think this just illustrates that it's better to build from a simple, flexible core than to bolt on pieces later.
I think you can go too far in the other direction too though. Certainly Scheme is a very elegant language but omits so much from the spec that you have dozens of incompatible OO implementations floating around. I think at a minimum a language should provide a single, consistent, standard implementation of the following: 1. a string/text type 2. an abstract datatype/object model 3. container types 4. concurrency primitives 5. ffi Clojure covers these points well, I think, and I'm not worried about Clojure fracturing into a babel of incompatible macro-based dialects. -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en