re: Should I go with Python, Java or Ruby in 2018? VIEW POST

re: It really depends upon what you want to do with it. Python is good for data science/machine learning, prototyping stuff. Dynamic typing might bite...

+1 For Kotlin, especially from a professional point of view.
Kotlin is specifically designed to give Java users a language that's conceptually very similar, but has a decent share of modern language features. Being made by Jetbrains, the company behind IntelliJ Idea, you also get stellar editor support for free.
Since it's essentially a superset of Java, you'll be able to derive your Java Skills from learning Kotlin.

My personal go-to language on the JVM is Scala. Some of it's advanced features need to be handled with care but It allows to write a very practical mix of functional and object oriented code that keeps me most productive. It has excellent libraries and frameworks to tackle complex problems.

To tie that into your original question:
I would not recommend to pick up Java. While it introduced lambdas with Java 8, it suffers a lot of the need to be backwards compatible, and is progressing very slowly, as mentioned. There's a high chance that you will need to write Java code at some point, but with Kotlin and Scala, there is little reason why you should do that on your own time.

More than learning languages, I recommend picking up concepts. If you get the chance, pick up functional programming while you're still at university.


My personal favourite is Scala too. But its slightly complicated from a beginner's perspective. As you said, concepts are more important. I learnt Scala and when Kotlin came out I was already familiar with 90% of its features.

Java is moving slowly, but hey enterprise companies move a lot slower as well. They don't adapt to newer Java language features as they come out. You can be polyglot if you learn the concepts and with Java/Kotlin/Scala, it is a lot easier since they all target the JVM.

code of conduct - report abuse