Clojure vs. Scala
After reviewing Pragmatic Bookshelf's Programming Clojure and Programming Scala, some Dobbs Codetalk readers may be wondering which of these languages will be the dominant one. Here is my opinion.
After spending time with both Clojure and Scala, my personal preference is trending more toward Scala as being the mindshare leader in the JVM-hosted concurrent language arena. In fact, it is possible that as these two languages mature, they may even become the new Perl/Python of the VM multicore world (though let us not forget Parrot, whenever that sees the production-capable light of day). But for now, I believe Scala has the edge thanks to more high-profile web properties advocating its use coupled with its closer association with Java as a reincarnation of Java as a concurrency modeled scripting language.
Clojure is an elegantly designed language, much the way Lisp was at the time of its creation. However, no matter how often I tried to use Lisp in a deadline-driven app construction opportunity, I didn't have desire or patience to do so. I have read several Lisp books and respect what Lisp advocates like Paul Graham, who made his personal fortune off his Lisp-based Viaweb sale to Yahoo, have to say about the language. While I do consider myself a pretty good programmer, I tend to be a generalist when it comes to languages. Alas, I will probably never attain extreme, deep, technical mastery of any programming language as a result, but having a good basis of understanding what each dialect can do has helped me remain successful in making the best choice for the job at hand. Clojure's video tutorials go a long way toward marketing the language to developers and they put on a convincing show. But how many remember Sean Kelly's convincing Plone video that made it look far more technically superior to other Python-based web frameworks? I suspect the same may lie ahead for Clojure unless the Clojure community can promote its use on high profile websites (though Clojure did make a ripple with the revelation that flight delay prediction website FlightCaster bases some of its code on Clojure) much the way the Scala community is marketing Twitter's conclusion in that language choice. Incidentally, as of today, Amazon is selling four Scala books compared to only two for Clojure, though there are several more Scala and Clojure books in the works.
From a real-life, corporate computing competitive vantage point, Clojure will likely meet more resistance compared to Scala due to its current lack of CIO and/or CTO Fortune 500 marketing power. However, whichever of these relatively new JVM-hosted languages is the first to advertise that it has become a major player in the financial, healthcare or communications space, that could be the inflection point ultimately winning the mindshare of developers and IT business leaders alike. For now, discerning early adopters shouldn't just take my word for it. Take the time to investigate both languages, write a few small applications and form your own conclusions. For those of you who already have, I encourage you to participate in the conversation by posting your opinion below.