Lau Jensen runs a Clojure consultancy and writes about Clojure tutorials, IDE setups, and language comparisons.
HN links it for Clojure examples and IDE guides, while one commenter criticizes its habit of taking jabs at other languages like Python.
> Nothing in your sarcastic "Uh ..." missive makes me or anyone else care about the features you just named. Yes, I know Ruby doesn't have True Lisp Macros. The point is, why should I care? What real-world problem can I not solve elegantly in Ruby because it lacks this language feature?
It allows for the creation of real Domain Specific Languages and the real extension of lisp for a given problem domain. Do you need constraint propagation on a network of cells? You can make a macro that turns this into an operator in lisp. You can extract nearly any pattern out to the language and begin complex manipulations there.
Since you have a frame of reference I can use, let's talk about rails routes. Imagine if you could specify rails routes in a way at least as naturally as you do in ruby (albeit with more parenthesis, but with fewer line-noise symbols otherwise), but have this become the most efficient implementation of that specific routing table.
You get to have your cake (a syntax that is expressive and immediate) and eat it to (is transformed under the covers into the most optimal code for that task), with frosting (0 runtime penalty for this decision).
> Again, my point is that if you can't name a single real world benefit of macros over what's already in Ruby, then why should anyone care how fast they are?
I say "the language is extensible!" and you say "but what about the real world." Sir, I don't know how to get more real world than this. You use it a billion different…
"the people that know Clojure well and participate in its community are not complete douchewieners,"
Like this guy? (http://www.bestinclass.dk/index.php/2009/10/python-vs-clojure-evolving/) . Seems like a vocal member of the Clojure community and is about the perfect example of a Clojure "douchewiener" (nice word!) that I can think of.
Some of the more vocal (and ignorant) members of the clohure community are ex ruby fanbois who jumped off the ruby/RoR bandwagon and moved their babbling proselytizing to Clojure. Yestrday it was all "ooooh mixins, shiny" or " ooooh Open classes shiny" and today it is all " oohh s expressions, shiny!". This is a shame, because Clojure is a nice language that deserves better. But otoh, the quiet and competent Rubyists are breathing easier now.
Of course, Rich Hickey and co don't do any unnecessary trumpeting or deprecation of other languages, but there is a lunatic fringe which combines loudness with ignorance in Clojure just as with Haskell (as you point out, correctly).
But neither the Haskell loudmouths nor the Clojure loudmouths are as toxic as the Common Lisp loudmouths, so things are relatively better in these languages and that is a good thing.
One of my favorite resources is the #clojure tag on Twitter. I use Tweetie and have bookmarked a search on that.
Here are a few sites from my GReader
http://www.bestinclass.dk/blog.html
http://nakkaya.com/
http://freegeek.in/blog/
https://groups.google.com/group/clojure
And here are a few tabs that I currently have open (Maybe this weekend I will get to them :D)
https://github.com/dbushenko/ClojureBlog
http://skillsmatter.com/podcast/scala/talk-by-patrick-fredriksson
http://brehaut.net/blog/2011/ring_introduction
http://www.codequarterly.com/2011/rich-hickey/ (Interview with Rich)
http://news.ycombinator.com/item?id=2682191
http://news.ycombinator.com/item?id=2709319
Hope these help :)
NetBeans with Enclojure is probably the best option for those who do not already know Emacs (or Counterclockwise if you are already in the Eclipse ecosystem.) I use Emacs for Erlang and Python coding, but for some reason the swank-clojure setup never really clicked for me. I keep at it and I am sure at some point I will not think that my Clojure dev environment is not more of a hinderance than a help, but if you are not already using Emacs I would probably suggest you start off by looking at the list here: http://www.bestinclass.dk/index.php/2010/03/clojure-ides-the-grand-tour-getting-started/
Thx for that. Java and scala-specifically, it's a pretty high-dimension space. Background:
http://www.elis.ugent.be/JavaStats
http://www.bestinclass.dk/index.clj/2010/02/benchmarking-jvm-languages.html
http://isthisclojure.blogspot.com/2011/02/benchmark-clojurejvm-5-degrees-of.html
https://docs.google.com/present/view?id=0AS8emH3-FLt3ZGRtbWJyOGdfMTFmcDZkcTk2cw&hl=en
Examples of benchmarks gone awry:
http://stackoverflow.com/questions/6146182/why-is-my-scala-code-running-slow
http://groups.google.com/group/scala-language/browse_thread/thread/94740a10205dddd2/
This is not the first time or programming language he has taken pot shots at. See http://www.bestinclass.dk/index.clj/2009/10/python-vs-clojure-evolving.html .
His whole blog post is about showing up the deficiency of Python (which is fine), and repeatedly telling us how Guido is controlling his programming by telling him to use white spaces to arrange code.
The author comes off as a muck raker and a troll, which is sad because he is obviously talented enough to produce a lot of interesting code and experiments.