On Thu, May 8, 2014 at 11:02 AM, Mark Engelberg <mark.engelb...@gmail.com>wrote:
> In fact, Clojure has a number of features that actively hurt its > expressiveness relative to other modern languages: > BTW, that list was by no means exhaustive. In the past couple of hours I've thought of a couple more, I'm sure others could easily add to the list: 7. Use of infix notation means that math formulas look dramatically different in Clojure than in math form, and therefore, it is difficult to determine at a glance whether a formula as implemented in Clojure matches. 8. Arrays in many domains are more naturally expressed as 1-based, but in Clojure, they are 0-based. I've encountered a lot of code that was confusing because of lots of increments/decrements to shift back and forth between the problem as specified with 1-based implementation and the 0-based implementation imposed by Clojure. Lots of opportunities for off-by-one errors and/or later confusion when other readers try to make sense out of the code. 9. Clojure's ease of functional composition can result in deeply nested calls that are far easier to write than they are to read. 10. Unlike most other languages, every time you give names to local variables with let, you add a level of indentation. Especially with alternations of let and if/cond, you can easily end up with "rightward drift" that makes code harder to read. These are things we learn to live with. If these were show-stoppers, I'd be using another language, but they are not, so on balance I prefer Clojure with its other many strengths. My only point is that by no means is Clojure a pinnacle of expressiveness where all code is miraculously obvious. -- 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 --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.