I’m not sure that just adding counter responses to almost all Mark
points really help. Most counter arguments here resume to "you are
doing it wrong" and "all clojure 'warts' are here to force you to
better design".

Indeed some kind of code is more readable when written in an
imperative way than functional way. Like some kind of code is more
readable when written in a functional way. This depend what kind of
code you want/need to write and that a strong point for supporting
both style in same language.

Clojure try to avoid imperative code style... Honestly I’m not sure if
avoiding all imperative code is a good idea or not... I need more
experience in clojure and lisp like language to have a good opinion on
that point. But anyway I enjoy clojure as it is today.

Mark, I would say using a few well designed macros you can make
clojure feel a lot more like you want to. That would be interesting to
see and experiment on.

Have a nice day, all!

Nicolas.

On 8 mar, 08:37, Sean Corfield <seancorfi...@gmail.com> wrote:
> On Wed, Mar 7, 2012 at 5:10 PM, Mark Engelberg <mark.engelb...@gmail.com> 
> wrote:
> > * introducing variables creates new indenting level, making code "creep to
> > the right"
>
> Mitigated by breaking functions into sub-functions (which is good
> practice anyway).
>
> > * as code creeps to the right, you need to have a lot more newlines
>
> Then your code is too deeply nested and should be broken into
> sub-functions. That's standard best practice across all languages.
>
> > * The convention of using hyphens to separate words is hard to read
>
> I disagree. I find camelCase far harder to read than hyphenated-names.
>
> > * loop/recur is significantly less readable
>
> I don't think it's "significantly" less readable but I do agree that
> recur is a bit of a wart.
>
> > * cond branches are sometimes written with the test and the answer on the
> > same line, or when the test gets too long you have to write it with the test
> > and answer on subsequent lines; this inconsistent formatting can make it
> > hard to know in long blocks whether you are looking at the test or the
> > answer
>
> Don't write long blocks. Don't write complex conditions. Introduction
> more sub-functions.
>
> > * Interweavings of cond and let (a common pattern) end up ridiculously
> > indented and hard to read
>
> See above (and I don't agree it's a "common" pattern... perhaps an
> anti-pattern?).
>
> > * Decades worth of classic algorithms involving imperative manipulation of
> > arrays look significantly uglier in Clojure
>
> Yet many algorithms are significantly cleaner in a pure functional style...
>
> > * Expression-oriented syntax (along with the indenting cost of using let)
> > encourages people to pack far too much into one line rather than giving
> > names to intermediate results.
>
> Again, poor style. Break things into sub-functions.
>
> > * DSLs are supposed to bring customized readable notation to many tasks, but
> > by the time you include namespace prefixes and colons for all the keywords,
> > DSLs don't really look that good.
>
> Then those DSLs are not achieving their design goals. DSLs are a good
> use case for :use or :require/:refer.
>
> > * ... But when I read someone else's compact
> > higher-order stuff, it's usually a nightmare to try to interpret what it is
> > doing.
>
> Really? I find the compaction outweighs the effort involved - as long
> as the code is modular enough (see comments above).
>
> > * And the number 1 problem with all Lisps is that when you look at Lisp
> > code, it's a sea of sameness.  Function applications, Macros, Control
> > constructs, bindings, data lookups, etc. all look exactly the same.
>
> I actually find that to be a plus - there's no distracting variance
> that artificially makes things "different" that don't need to be.
>
> Syntax is very subjective. It's really good to here your pro-Python
> thoughts tho'...
> --
> Sean A Corfield -- (904) 302-SEAN
> An Architect's View --http://corfield.org/
> World Singles, LLC. --http://worldsingles.com/
>
> "Perfection is the enemy of the good."
> -- Gustave Flaubert, French realist novelist (1821-1880)

-- 
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

Reply via email to