Clojure & Java Interop
blog.jayfields.com
blog.jayfields.com
Presuming that, for the most part, developers migrate from Java to a different JVM language, then inevitably these languages will fragment code written for the JVM, devaluing the very foundation used to hoist the languages into usefulness in the first place. The tower of Babel will rise higher with competing idiomatic implementations of various libraries. This is not a bad thing--rather it has to be this way because introducing new language features (such as STM in Clojure's case) demands it. We're living in a gold rush on Java to mine it for its libraries. After this will come a period of settlement as each JVM language builds its own community, with civic structures that perform the same duties, but look different, in every town square.
Calling Clojure from Java is difficult because Java is inflexible more than some inherent weakness in the "bootstrap on a host VM" strategy.
I've written a library to call Clojure from JRuby. It's about 100 lines, and took me an afternoon. I assume the situation is similar all high level JVM languages.
Given all the above, I agree that the JVM languages will fragment somewhat, but to a lesser degree than you seem to think. If there are any really killer app libraries in one language, it won't be too hard to integrate them into the other languages.
http://www.wiki.jvmlangsummit.com/MOP_and_Invokedynamic
It's a pretty clever usage of invokedynamic.
Is anyone else picking up Clojure or is it "that one guy's crazy code that no one can understand"? I think we've all seen latter situation even when everyone's coding in the same language and it's a huge red flag.
I'm all for new and different languages seeing business use, but doing it this way seems potentially harmful. But maybe it was a huge success here; I'd love to hear more about it.
There's only 2 of us, and the other guy also wanted to learn Clojure. His response to my statement was: "That's part of the reason I want you on the team, we need to advance some of the tech on the project."
Also, Clojure has been in use at DRW for over 3 years, so adding it to another project wasn't actually that big of a deal.
I know all that context wasn't in the article, so I think your questions are on point - but, I think that info isn't really on topic for the article, which is why I left it out.
TW had the policy that "technical decisions are made by technical people" and I wouldn't be surprised if DRW had something similiar. What mix of languages should be used on a project should (imo) be made by developers who work on that code base. If Jay insists on working in a language he knows (from experience, he is a great Java dev) to be better, then more power to him.
http://clojure.org/compilation
The result is a completely "normal" non-dynamic java class. There's still a dependency on clojure.jar though.