Scala, Kotlin, Ceylon, gosu..let's start by being honest
ochsenreither.posterous.com
ochsenreither.posterous.com
It claims that we should "start by being honest", and the whole article argues that there should be no other alternative JVM language except Scala?
Well, for some people Scala means just too much incidental complexity for too little power gains, and are trying to find different balance on complexity/power scale by inventing different languages. I can't see what's wrong with that.
1. The performance of Java
2. The brevity of Ruby/Python
3. Static typing with a concise syntax => no need to write tests for type errors. The Lift devs claim allows less total code than an equivalent Ruby app. (See David Pollack on Quora)
4. Functional syntax and Erlang style lightweight message passing, giving you the ability to more quickly pick up Haskell, Ocaml, Erlang etc. if you ever desire.
Not a bad list.
Regarding Clojure, I'm a fan of it too, but wasn't planning on jumping on that bandwagon till the JVM has invokedynamic, lambdas, and closures (eg, Java 8 out and relatively stable). But lots of people obviously are now, especially Rubyists it seems, including Heroku. Why is that?
Lambdas/Closures when they come to Java will certainly be backward compatible with the JVM (and hence just syntactic sugar) and will implement Runnable/Callable in some form.
Exactly! It's easy to make sweeping predictions of obsolescence when you don't even address the criticisms these alternatives levy against Scala. For many, Scala is too functional/academic, and alternative implementations have a real chance of snatching up developers who want just want a cleaner/simpler Java.
Gosu has plenty of problems and, admittedly, covariance is a logical hole, but it was an explicit choice: we didn't think the power to weight ratio of the other options were high enough. Daniel Spiewack (Scala expert, very nice guy, and incredibly smart) gave a talk at OSCON on the complexity of the Scala type system:
http://www.oscon.com/oscon2011/public/schedule/detail/18780
So even a Scala expert is starting to wonder about the wisdom of pursuing the One True And Sound Type System.At some point, the statically typed guys have to look at the success of dynamically typed languages and wonder just how much static typing matters. We think it matters for tools, mostly, so we picked a type system that isn't sound, but usually does what you want and gets out of your way. That might work for you, it might not: but we are grownups and we've though about it more deeply than this guy apparently thinks we have.
Sometimes I want to give up on HN.