in Programming

Which programming language should I use for my startup?

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.

Read Preslav Rachev's answer to Which programming language should I use for my startup? on Quora

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.

  • Kotlin is definitely worth it. The main advantage for Scala compare to other languages like Java/Kotlin/… is its type system. Having higher-kinded types available is big advantage.
    Another aspect to consider is the business domain of your startup. For instance many good machine learning libraries are available in Python so might be worth to consider as well.