top | item 11386475

(no title)

bonobo3000 | 10 years ago

I like it! I have similar opinions on static vs. dynamic, Java vs Python or PLs in general - too many judgements are based on shallow first impressions or ease of getting started to the detriment of future maintenance.

Check out Scala :) Its a pretty complex language, but its the sweet spot between Python and Java i've been looking for.

discuss

order

jinst8gmi|10 years ago

We had very similar experiences with Scala. Java and the JVM are incredibly stable and mature but the language (even with JDK8+) is very restrictive. There's no pattern matching, no full closures, properties are based on a manual naming convention, and even the basic type inference is extremely primitive. The dynamically typed languages like Python and Ruby are fantastically expressive and flexible, but maintaining large bodies of code can be tricky and the performance can't compare to the JVM. Scala gives us the stability and performance of the JVM with great tooling (IntelliJ Scala plugin) and the language is very flexible and expressive. It takes some discipline to focus on writing highly readable Scala code but the result is totally worth the extra effort of learning the language. I'm not surprised that Scala was ranked as one of the most loved languages in the StackOverflow survey for at least the last two years, and Spark and Scala are the top paying tech skills in the US :

http://stackoverflow.com/research/developer-survey-2016#tech...

http://stackoverflow.com/research/developer-survey-2016#tech...

dvirsky|10 years ago

If you're looking for a sweet spot you should try Go.

lmm|10 years ago

Go is a bitter spot in my book. All of the costs of a good type system like Scala's, but few of the benefits. (Go may well be better than Java, but why is that your point of comparison?)

jinst8gmi|10 years ago

Go feels more like C with garbage collection and a nicer standard library, but lacks the abstractions necessary to be anywhere near as expressive as Python, Ruby, Scala or even Rust. At the language level some advantages of Go include the fact that it's easy to learn and mostly hard to write unreadable code.

xaduha|10 years ago

Check out Kotlin. It's not a complex language with much faster compile time.

lmm|10 years ago

It's a complex language, just not a powerful one. If you want a language that actually simplifies on Scala, try Ceylon.

jinst8gmi|10 years ago

Turbo Pascal has much faster compile times than Kotlin. Compile time just isn't that big a deal as a feature.