Something is simple as long as your mental model is simple to track. Something which doesn't cause you headache. If you can't build mental model in your head, then its definitely not simple. Every time you think I have mental model which works like this, but before this I must remember about this and that, or assume that there is something to add which behave like this, it is proof that it is doesn't solve problems in a simplest way.
All design patterns are proof of that used tools are not simple and must be made simple by applying as simple as possible additional mental model. For example OO programming have a lot of design patterns. When design pattern becomes mental model which solve specific problem and is not addition to the goal but language feature then you can be sure that language is simple to such solve domain problems. Now looking at Clojure which claims to be general purpose language, the Clojure is simple since it: - allows you to turn design patterns into language features (as whole lisp) - is near to mathematical logic (lambda, definition of functions - functions without side effect with which you can reason about) - is practical since it is also about data manipulation (not a first time I have turned XML into s-expressions - interpretation, function definition, control flow you have out of box) There are some also drawbacks about Clojure: - there is no simple made currying so its not as near as for example Haskell to lambda calculus - you can't reason about data types until runtime and empirically tests - it is bound to JVM infrastructure (ClojureScript and CLR version want to change that) There is a lot other fields in which Clojure doesn't fit, so its not simple in: - real time systems (JVM is not real time cause of GC) - hardware programming on low level (assemblers or C are much more suitable) There is a lot other things to say about being simple but for now it should answer you question. -- 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