Migrating from Java to Kotlin

Details

At Enyoit we love Java (among other programming languages) to be able to offer backend solutions in our clients. It is a very mature language and with a wide community behind, being used at many tech companies worldwide. However, we are always critic with everything we use and we study alternatives which could make our lives better within in reference to our products and our client’s lives. Although Java is adapting to new needs, its pace of improvement is slowdue to the obligation to give retrocomaptibility and to be a language born to satisfysome other needs.

That is why we have implemented Kotlin within our own company and for some of our clients, as official language for solutions based on the JVM -we love Scala as well as some other more functional languages but we know that the learning curve is very high-. From the first month of implementation productivity within the companies was very superior:

  • Very easy to learn language. For a Java programmer, it takes no more than a couple of weeks to learn it. This is a key point where other languages like Scala or Clojure fail.
  • Language 100% Java compatible. We need no new dependency managers, we do not need to learn anything new. Classes written in Kotlin can consume any class created with Java and even to coexist within the same project: wonderful 🙂
  • Strongly typped language. We don’t mean that typped is always best option. For the backend part, the fact that your program doesn’t compile if you don’t use the correct type means hours of filtering.
  • Eliminates the feared one billion dolars error Nullpointer. Receiving this error at the execution time is over. The compiler makes you work with the empty value so that your program can compile.
  • Immutability. In Java, few people indicates final on their variables definition, leaving room for error at the execution time, where many of us have left part of our days of youth With Kotlin you always hav eto choose whether your variable will be immutable, and the collection will be all immutable by default.

Backed up by the big compaties at software creation. Android named it official language, Spring is using it and incorporating it to its framework, it’s used by Trello, Uber…

Other projects

#APIfication: API revolution in Finance sector.
Building Event Driven MicroServices with Apache Kafka
APIyoit_Payment Gateway