CIO's Esther Schindler reports on the up-and-coming languages some developers wish they were coding with today. No surprise that Groovy, Scala, and Clojure top the list; but what's all this about Lua and Boo?
However, while we've covered several in depth, those five dynamic languages are not the only ones developers use. Since every programming language is a tool suited to solve a particular problem, it behooves each IT shop to use the best tool for the job. So in this article, I share a few up-and-coming scripting languages that really ought to be on your company's radar, with a few passionate arguments from developers who have adopted them.
Scala is particularly attractive to Java developers. Per its website: "Scala... is both object-oriented (think inheritance, methods, ...) and functional (think closures). It blends a number of modern language features, while maintaining close compatibility with Java."
Dean Wampler, senior consultant at Object Mentor, is currently co-writing a book on Scala for O'Reilly. "Scala is the best language I have seen that meets the 'one size fits all' goal," he says. "Scala fixes problems with Java, like verbosity and limitations in Java's support for object-oriented programming. In addition, Scala supports functional programming-an approach that has been around for a long time in academic computer science, but is now proving to be very useful for writing robust concurrent software. Concurrency is very important for scaling up software at large websites and enterprises."
For David Ritchie MacIver, a developer at Trampoline Systems, Scala's primary benefit is that he can avoid Java. "I can match [Java] in terms of library support, performance and ease of deployment," he says. Many Java tools carry over to Scala, too. MacIver says his company is adopting Scala for some of their visualization software as the software is updated, and reducing its use of Java and Ruby.
MacIver doesn't recommend Scala for everything, though. "People will push Scala for concurrency advantages. Please don't succumb to the temptation. It doesn't particularly have any. Any more than Java does, that is."
Another language gaining ground in the Java community is Groovy. According to its website, Groovy is an agile and dynamic language for the Java Virtual Machine (JVM). It builds on Java's strengths but has additional power features inspired by languages like Python, Ruby and Smalltalk.
So, what's Groovy's compelling feature? According to the slashdot commenter who first brought it up (and inspired this entire project... see what he or she started?), "I was surprised that Groovy didn't appear anywhere in the article. If there's a dynamic language poised to convert the enterprise crowd, it's Groovy. [It's] able to compile into Java bytecode, compile Java code and directly exploit the huge base of Java, but without the cumbersome Java syntax. I wouldn't be surprised to see Python and Ruby supplanted by Groovy in a couple of years."
Java developer Chris Broadfoot agrees. "Groovy lets Java developers code in an effective, expressive manner, while maintaining cross-compatibility with legacy Java code," he says.