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.

Reply via email to