Re: Matt Raible: Why is Clojure better than Scala or Groovy?
On Fri, Jan 15, 2010 at 8:22 PM, Julian juliangam...@gmail.com wrote: Matt Raible - Spring Expert and Java consultant posted the following entry to Twitter: Why is Clojure better than Scala or Groovy? How about two reasons to learn Clojure instead? 1) Clojure is (a) LISP. According to Eric Raymond, LISP is worth learning for a different reason — the profound enlightenment experience you will have when you finally get it. That experience will make you a better programmer for the rest of your days, even if you never actually use LISP itself a lot. 2) Clojure is designed from the ground up for concurrent programming. It has a number of mechanisms that improve on locks for managing state. Those come from other languages, and are liable to appear in yet more languages in the future. If you're doing concurrent programming, learning them will make you a better concurrent programmer. If you're not doing concurrent programming, consider that CPU improvement has changed from an exponential growth in raw speed to an exponential growth in number of cores. mike -- Mike Meyer m...@mired.org http://www.mired.org/consulting.html Independent Network/Unix/Perforce consultant, email for more information. O ascii ribbon campaign - stop html mail - www.asciiribbon.org -- 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
Re: Matt Raible: Why is Clojure better than Scala or Groovy?
I don't think you can really answer the question because it being asked in the way it that precludes a good enough answer. The tone of Matt Raible's request suggests that he'd really rather not learn it, and that there's no possible reason to overcome that reluctance. Why travel? There's plenty of good food right here, and interesting cultural sites to see, and stuff to buy. But you don't ask that question: you just go, and FIND OUT why it was worth doing after the fact. (Or maybe not.) Still. My take: 1. Clojure is dynamic like Groovy, and functional like Scala, so if Matt learned it, he'd be able to see what that's like. 2. It's a Lisp, and that's worth trying at least once, but it's on the JVM and a new dialect, so it lets you write Java in Lisp at first, and the lets you enjoy beginning to see new ways of thinking about problems. 3. Clojure has a flavor of STM that's database-like, and easy to use for the non-theorist programmer (i.e., folks like me who just write dorky business apps that aren't much more than shoving data to/from the web/database). This really cuts down on threading bugs, which are super hard to diagnose when the errors occur in production, which is always locked down and inaccessible to devs, debuggers, etc. STM doesn't help distributed concurrency (for which actors are better, imho), but it does help for a wide range of non-distributed use cases. 4. Clojure's macros make domain specific languages a natural part of programming. While Groovy's various Builders are pretty nice, it's not so easy to write your own builder, esp. if you're under pressure to get something done. For instance, I write a lot of Groovy apps, and I want something like Compojure. But the idea of figuring out how to use the Builder Support to do something like that just makes me tired. Really, though, it's so hard to convince someone that one language is better than another significantly enough to be worth learning using reason or any other method. One just has to try it. For me, Clojure/Lisp just works the way I do. Incremental, small functions, interactive, etc, etc generally as a result of super-vague requirements. Every time I write an app in it, I feel like the app gets smaller and simpler over time. I let myself write a lot of boilerplate (to avoid premature abstraction), then condense it all in a way that fits my app (not, say, a general lib), and the whole experience of it is positive. Better, smaller code, faster, and more fun to do (even if it's the same old business tasks). So, Clojure wins or is worth trying because of the experience of using it, not because of some particular bullet point, which all languages feel like they all have. (Personally, I'd really love Haskell/Erlang like pattern matching, not just destructuring or multi-methods (but those, too!), but even so) Didn't Paul Graham say something to the affect that a user of a blub language just can't see the point in other languages? I don't think Groovy and Scala are blub languages, but I think the idea applies, at least in an emotional way. Matt should just give it a few weeks' try, like Tim Bray did. Keith On Sun, Jan 17, 2010 at 12:00 PM, Mike Meyer mwm-keyword-googlegroups.620...@mired.org wrote: On Fri, Jan 15, 2010 at 8:22 PM, Julian juliangam...@gmail.com wrote: Matt Raible - Spring Expert and Java consultant posted the following entry to Twitter: Why is Clojure better than Scala or Groovy? How about two reasons to learn Clojure instead? 1) Clojure is (a) LISP. According to Eric Raymond, LISP is worth learning for a different reason — the profound enlightenment experience you will have when you finally get it. That experience will make you a better programmer for the rest of your days, even if you never actually use LISP itself a lot. 2) Clojure is designed from the ground up for concurrent programming. It has a number of mechanisms that improve on locks for managing state. Those come from other languages, and are liable to appear in yet more languages in the future. If you're doing concurrent programming, learning them will make you a better concurrent programmer. If you're not doing concurrent programming, consider that CPU improvement has changed from an exponential growth in raw speed to an exponential growth in number of cores. mike -- Mike Meyer m...@mired.org http://www.mired.org/consulting.html Independent Network/Unix/Perforce consultant, email for more information. O ascii ribbon campaign - stop html mail - www.asciiribbon.org -- 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.comclojure%2bunsubscr...@googlegroups.com For more options, visit this group at
Re: Matt Raible: Why is Clojure better than Scala or Groovy?
On Fri, Jan 15, 2010 at 8:22 PM, Julian juliangam...@gmail.com wrote: Matt Raible - Spring Expert and Java consultant posted the following entry to Twitter: Why is Clojure better than Scala or Groovy? http://twitter.com/mraible/status/7793457551 He went on to say: Let's try that again: I like Scala and Groovy and see no compelling reason to learn Clojure. Am I missing something? http://twitter.com/mraible/status/7794565786 I know that I think - but I thought the awesome community here could help answer this question. I would very much like to discourage the bashing of other languages here. It is tedious and pointless. Should anyone be provoked into responding to this, please keep your comments to attributes/deficits of Clojure. Thanks, Rich -- 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
Re: Matt Raible: Why is Clojure better than Scala or Groovy?
One third main selling point, just for you ;-) : Clojure has a rooted in it a development paradigm suited to manage state of identities over time. That is, clojure embraces the functional paradigm for most of the development process, but does not leave you naked when time comes to write those parts of your application which require dealing with state, time, concurrency, parallelism, etc. Rich's videos are particularly enlightening concerning this point: * a (mostly) clojure agnostic explanation of the problem and a general solution to it: http://www.infoq.com/presentations/Are-We-There-Yet-Rich-Hickey * a more clojure-oriented talk which complements the above with clojure detail: http://www.infoq.com/presentations/Value-Identity-State-Rich-Hickey 2010/1/16 Shantanu Kumar kumar.shant...@gmail.com: On Jan 16, 6:22 am, Julian juliangam...@gmail.com wrote: Matt Raible - Spring Expert and Java consultant posted the following entry to Twitter: Why is Clojure better than Scala or Groovy?http://twitter.com/mraible/status/7793457551 He went on to say: Let's try that again: I like Scala and Groovy and see no compelling reason to learn Clojure. Am I missing something?http://twitter.com/mraible/status/7794565786 I know that I think - but I thought the awesome community here could help answer this question. I wrote about benefits Clojure (v1.0) some time ago: http://bitumenframework.blogspot.com/2009/09/benefits-of-using-clojure-lisp-in.html The best benefit of Clojure is, I think, the power-to-weight ratio. The language is so much devoid of syntax and semantics bloat that whatever code you write in Clojure is pure productivity. Concurrency- handling makes it suitable for current-day development and as Chouser noted, the Macros feature is a game changer. Regards, Shantanu -- 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 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
Re: Matt Raible: Why is Clojure better than Scala or Groovy?
On Saturday 16 January 2010 18:10:15 Shantanu Kumar wrote: The best benefit of Clojure is, I think, the power-to-weight ratio. That's a really good description for a low barrier to entry. :-) -- Dr Jon Harrop, Flying Frog Consultancy Ltd. http://www.ffconsultancy.com/?e -- 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