Hacker News new | past | comments | ask | show | jobs | submit login

What's a good replacement for Java that has static typing and tool support? Is there one yet?



On the JVM, the most solid contender is Scala. It's "better" than Java in a number of ways. Personally, I'm a bit turned off by the very intrusive role of the type system. You may find a bit less tool support than for Java (no surprise) and some of the clever functional-style code you write may run slower than less elegant corresponding Java code. Still, there are a lot of adapters, some big names, and they get stuff done. Scala being "harder" also allegedly attracts smarter developers.

Another statically typed language, non-JVM, with decent momentum is Go. It's like C with a slew of sorely needed improvements. Very straightforward and there's often a single, obvious way to get something done. As a result I find I'm very productive in it. Performance is topnotch too. Tooling is quite good. I'm not sure it replaces Java as an "Enterprise" language for large-team projects though.

Kotlin is another "better Java" language on the JVM. Pleasant enough to work with, but not as large an adopting community. Tooling is good if you like IntelliJ.

C# is Microsoft's challenge to Java. Has borrowed some good ideas from Java and extended them, interfaces well with Windows (obviously). Tooling is good if you like Visual everything and Microsoft.

Now may be a good time to switch to a language that more fully embraces functional programming. F# and OCaml are possibilities, Erlang has a great rep for stability, and Haskell is said to be very powerful but with a daunting learning curve.

I'm experimenting with all of these and have the damndest time making up my mind. There's kind of an embarrassment of choice.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: