Terseness and density is what attracted me to lisp-style languages in the first place. In Clojure it is generally easier to locally comprehend everything that is going on without having to go chasing through a bunch of class definitions, and the code is often declarative enough to serve as its own documentation.
Of course poorly written code is always painful to read, and written macros are even worse. Isn't this why it's generally an accepted principle that macros should only be written when there is a truly compelling reason to do so? I would also argue that Clojure's functional immutability and lazy sequences tend to nudge us in the right direction in a better way than Python's "linguistic strictness" does. Whenever I write bad Clojure, I get a Very Bad Feeling and the You're Doing It Wrong alarms start going crazy in the back of my mind because there is a lot of philosophical "impedance". With Python it seems much more likely for an initially clean code base to devolve into a side-effect-filled, OO-inheritance-crazy imperative mess over time. -Ryan On Mon, Jun 28, 2010 at 4:32 PM, Daniel Gagnon <[email protected]> wrote: > >> This is mostly due to Python's "There is only one obvious way to do it" > which makes reading code much simpler. On the other hand it is possible but > harder to make lisp code as readable (my code became much more readable > after I discovered the threading macros for instance) and often lisp is > harder to read per line but does much more in that small amount of space > than another language would. Same principle as yet another Java class full > of getters and setters being trivial to read but not getting much done per > line. > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to [email protected] Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/clojure?hl=en
