Please No!! I don't think it would help newcomers at all - it takes only a few days to get used to s-expressions. Coming from a C/Java world I found significant whitespace in Python to be just as much of a mental leap. And it would cause enormous confusion if two different syntaxes were in use.
But more importantly from a language design perspective, replacing an extremely flexible, general purpose code block delimiter with significant whitespace is an extremely backwards step. With s-expressions, you are free to format your code for clarity, using whitespace to display the code in the structure that makes most sense to humans while leaving the parens for the machine. If you lose the parens, you lose the semantic structure of the code and introduce significant ambiguity. Just to prove the point, what does the following evaluate to? and true or true true not true I'd really hate to debug code with ambiguous execution order like that...... As the icing on the cake, losing the parens would make Clojure editors much less effective. Being able to select / cut / move whole s-expressions based on paren-matching is one of the key productivity advantages when editing Clojure code, we certainly wouldn't want to lose this. On Tuesday, 5 February 2013 04:01:30 UTC+8, Sergey Didenko wrote: > > Hi, > > For us as Clojure community it is easy to see how Clojure benefits > from being a Lisp. Homoiconity, extreme conciseness, esoteric look and > feel, etc. > > However it is hard to see from the inside how Clojure as ecosystem > (probably) suffer from being a Lisp. Please don't throw rotten eggs at > me, I mean only the part of Lisp that is ... parentheses. > > I remember a number of people that mention parentheses as obstacles to > the wider Clojure adoption, in the Clojure space - in the Clojure > related discussions, even on this mailing list IIRC. > > But the number of people thinking this way outside the Clojure groups > is even bigger! We probably don't notice it because got immune to this > famous argument "it has too many parentheses" early when diving into > Clojure. > > I suggest there are a big number of people that could gain interest in > clojure if we provide them with parentheses-lite Clojure syntax. For > example we can steal Python way of intending blocks. > > For example the following quicksort implementation > > (defn qsort [[pivot & xs]] > (when pivot > (let [smaller #(< % pivot)] > (lazy-cat (qsort (filter smaller xs)) > [pivot] > (qsort (remove smaller xs)))))) > > could be written as > > (set! python-style-op-op true) > > defn qsort [[pivot & xs]] > when pivot > let [smaller #(< % pivot)] > lazy-cat > qsort > filter smaller xs > [pivot] > qsort > remove smaller xs > > What do you think? > > Isn't is less complex? > > > P.S. Ok, I must confess, the mention of the C-Word in the last > sentence was just a desperate way to get Rich's attention. > > P.P.S. Actually I would also love to see Clojure community making > video clip "Clojure - Python Style" as a remix for "G... Style", but > this idea is probably way ahead of its time. > > > Regards, Sergey. > -- -- 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/groups/opt_out.