Everyone looking for these kind of features should probably just be using Scala...
Everyone looking for these kind of features should probably just be using Scala...
1) For now, I still have a job as a Java programmer. Closures in Java will save me some lines of code until I can fix that.
2) Currently each JVM language has its own incompatible reinvention of closures. I think that closures in Java are a step towards better interoperability between JVM languages.
3) A lot of programmers will be introduced to a higher level of abstraction than they otherwise would have.
Yeah, but as long as they expect Callables in the right place interop can be pretty easy with just interfaces. For instance, you can pass JRuby lambdas to Clojure functions just fine. Sure there's a duplication of effort, but it's not too bad for interop purposes.
I beg to differ: http://github.com/technomancy/clojure-gem/blob/master/test/t...
Again, you cannot pass a ruby function expecting arguments to Clojure! What your link shows is that you can, however, send monkey-patched versions of ruby functions that implement clojure-specific calling conventions to clojure. :)
http://news.ycombinator.com/item?id=1257599
Good point regarding the effect on interoperability. I don't have an answer for that.
http://freegeek.in/blog/2010/05/clojure-protocols-datatypes-...