A poll was taken recently in the Northern Virginia Java Users Group that asked: "What language besides Java are you interested in using or already using?"
I seems strange that Scala was not listed as a choice. Those that were interested in it presumably would have voted for "other" which garnered 5% of the votes. Javascript, Ruby and C# came out on top:
Here is Merge Sort in Scala:
def msort[A](less: (A, A) => Boolean)(xs: List[A]): List[A] = {
def merge(xs1: List[A], xs2: List[A]): List[A] =
if (xs1.isEmpty) xs2
else if (xs2.isEmpty) xs1
else if (less(xs1.head, xs2.head)) xs1.head :: merge(xs1.tail, xs2)
else xs2.head :: merge(xs1, xs2.tail)
val n = xs.length/2
if (n == 0) xs
else merge(msort(less)(xs take n), msort(less)(xs drop n))
}
Here is Merge Sort in Java
http://www.vogella.de/articles/JavaAlgorithmsMergesort/article.htmlThe code is about 4 times longer.
Now - some programmers will note that the Java code sorts the elements "in-place" - so it's more space efficient.
But the point here is that you could get your job faster with a higher level language like Scala.
I have the feeling that for the type of work you do - Scala could be much more empowering. Yes - Scala has a learning curve if you want to use the more functional aspects of the language - like the example above.
By the way here is the "Scala By Example" free book from Martin Odersky.
http://www.scala-lang.org/docu/files/ScalaByExample.pdfIn terms of the other languages mentioned: Since I have used Ruby and C# in the past and more recently Javascript - I would answer using those too.
However in terms of interest - I am interested in Scala even though I haven't done any real work except playing with sample programs and trying a few features.
By the way - if you think Scala looks unfamiliar and strange at first - check Erlang

qsort([]) ->
[];
qsort([H | T]) ->
qsort([ X || X <- T, X < H ]) ++ [H] ++ qsort([ X || X <- T, X >= H ]).
I know just enough about it to wrap my head around the Quick Sort above. But I have the book and check from time to time to see what is happening with the Erlang project. Erlang seems to be very suited for writing servers for chat applications ... and I haven't done anything similar.
Scala did borrow a few things from Erlang according to the author.