This is a repost of my answer to a question on Quora, titled: “Which programming language should I use for my startup?”. Feel free to share or vote for the original answer, in case you like. I would also love to hear your feedback.
Since the majority of your developers have an affinity towards Java/Scala, I would go right away and suggest you try Kotlin (https://kotlinlang.org/). It is a modern, open-source language for the JVM, built by the guys at JetBrains. About a year and a half ago, I was struggling with choosing between Java, Scala, and Kotlin for my next personal projects, when I discovered Kotlin. I’ve been using it ever since.
Kotlin has obviously been inspired by Scala, and tries to bring a fresh feeling to the JVM ecosystem, by reducing boilerplate and ceremony. Unlike Scala though, Kotlin has been designed from the ground-up to be a productive programming language and not an academic experiment at functional programming. The language provides just enough syntactic sugar, for you to feel empowered, but does not over-complicate. There is little of the Scala/Ruby-esque freedom of expression, where the same thing could be expressed in 20 different ways, all of them right. Kotlin offers a choice of expression, but just at the right degree of freedom, so you don’t end up having as many different code styles, as many developers you have in your team. Large code bases keep being consistent, without much verbosity.
Kotlin beats Scala in terms of build/runtime performance too. Compilation time is a breeze when compared to building a Scala project of the same size. Another big win is the backward compatibility. Though Kotlin brings many fresh concepts to the table (lambdas, stream support, extension functions, async, etc) it still targets JVM runtimes as old as Java 6. This is one of the reasons why it has been such a huge hit among the Android community (the majority of which is till stuck with Java 7).
Though much of the hype around Kotlin today mainly revolves around the Android community, I see big potential for the language outside of it too. After all, if the language is actively being used by JetBrains within their entire product line, I don’t think there should be any barriers to its general adoption in the JVM community. In fact, I am a firm believer that language might try to tackle niches, like machine learning and data science, where other languages have traditionally reigned over for decades.
I’d say give Kotlin a try!
P.S. I am not working for JetBrains (yet). I am just a happy customer of their tools and technologies.