I love Clojure's syntax, and not because of macros. I love it because it's
both extremely consistent and extremely simple. Just some quick examples:
- In Ruby, blocks use || for param lists and functions use (). In
Clojure it's always the same.
- In Ruby if you pass a block argument to a method, you use do/end, but
if you pass it as a non-block argument, you use lambda/proc/Proc.new. If
you're passing it by name, you use & for block arguments and omit it for
regular arguments. In Clojure it's always a regular function, whether
anonymous or not.
- In Ruby, depending on whether you use {} or do/end for blocks, they
become "attached" to different method calls depending on if you used
parentheses for your intended method call(s) or not. In Clojure,
parentheses completely eliminate potential for this ambiguity.
- In Ruby, there are only some methods you can name with special
characters, such as << and foo=, and they're special-cased by the parser or
something so you can write "names << bob" and "self.foo = bar", but you
can't write a method called ">!!" if you wanted to. In Clojure you can name
functions anything that doesn't use the (very few) built-in syntax
characters like parentheses.
I did Ruby for the past 3 years so these come to mind most quickly. But I'm
sure I could come up with examples in all other languages I've used
demonstrating that Clojure's syntax is the most consistent and most simple
of them all. And simple is good, since it saves your brain cells some
energy to work on the real problems.
Background: My day job is a Clojure web app, which I've been working on for
almost a year now.
-Steven
On Mon, Aug 12, 2013 at 2:52 AM, Răzvan Rotaru <[email protected]>wrote:
> Hi,
>
> I'm curious about the general opinion on the Clojure syntax, whether
> people actually like it or just use it because it provides macros. So I
> would like to ask you to participate in a poll. Thank You.
>
> Here's the link:
>
> https://docs.google.com/forms/d/1GSgfkeThpUYlgFVzhhNIgA1JbTilu6S9eudq_Sbxl34/viewform
>
> Răzvan
>
> --
> --
> 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
> ---
> 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 [email protected].
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>
--
--
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
---
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 [email protected].
For more options, visit https://groups.google.com/groups/opt_out.