Which of the new breed of JVM languages has the most potential?
it-republik.de
it-republik.de
As to Scala: It's extremely elegant, and the community has its act together as far as positioning the language to go mainstream. I'm expecting the 2.8.0 release to be a major step forward, thanks in part to a completely rewritten Eclipse plugin. That kind of tool support will be crucial in getting the language to critical mass. One thing that worries me, though, is that Scala projects tend to be built using Maven, which is awfully complex. Perhaps something like JavaGems may prove to be more important to the future JVM ecosystem than any single language.
It's been mentioned on the mailing list that Lift, for instance, will eventually move from Maven to SBT when it's functionally complete.
fwiw, this will be in jdk 7 (from project coin, iirc)
mvn archetype:generate -U \ -DarchetypeGroupId=net.liftweb \ -DarchetypeArtifactId=lift-archetype-blank \ -DarchetypeVersion=1.0 \ -DremoteRepositories=http://scala-tools.org/repo-releases \ -DgroupId=demo.helloworld \ -DartifactId=helloworld \ -Dversion=1.0-SNAPSHOT
The whole Java world is full of that kind of crap that makes it impossible to do anything in a simple way from memory only. (I'm a Django person myself and also like Rails.)
Although I will probably stick with Perl and Haskell for myself, I'm looking forward to a world where Scala and F# are the "enterprise" languages.
Just like PL/1.
One of the interesting things I found is that it's remarkably easy to port plain Groovy code to Scala with only minor changes. Once you get over the (somewhat steep) learning curve of the Scala type system I've personally found that I'm about as productive as with Groovy, but end up seeing far fewer runtime errors.
It's not that easy to move existing Grails applications to Lift, however, since the frameworks are so fundamentally different. I've found the best bang for the buck is in moving as much Groovy code as possible to libraries outside of Grails, and subsequently rewriting them in Scala as needed.
Clojure is too slow.
I'm guessing clojure has a better chance of getting faster than scala has of getting simpler, so I voted for clojure.
The wide feature set of Scala wasn't just assembled at random; it's there because there are use cases in which each of those features makes a task really simple. If you've got a team of smart programmers, then overcoming the language barrier will take a lot less effort in the long run than producing and maintaining tons of bloated code in a less complicated language.
PS: Has anyone seen a language get cleaner / simpler?
Natural languages are a different story. English has arguably become substantially simpler over centuries (hardly cleaner, however).
Funny, since I wrote my blog in clojure/compojure and found it easy going compared to Rails (which, to be fair, I had attempted to learn before having any real programming experience). That was my first experience with "a lisp", and it went well. Unfortunately, I think self-imposed cynicism about lisp is a big part of what keeps it from going mainstream.
EDIT: however, I respect that experiencing lisp not going mainstream for years would kill pretty much anyone's optimism :)
scala is complicated, but it got better IDE support than clojure at this time. Some of clojure's community seems prefer Emacs/Vim more than Netbeans/Eclipse, and they really need a good support from netbeans/eclipse.
it all depends on your personal style.
Ba-doom psssh.