Kotlin or Die

The official Kotlin documentation says Kotlin pioneered in 2016. A year later, at Google I/O 2017, Google announced first-class support for Kotlin on Android. In 2017, I was in Year 2 of my 3-year University Program – a Bachelor’s Degree in Computer Science. While Kotlin was being unveiled to the world, my class was being introduced to Java – an Object Oriented Programming Language that was so big and wide we studied it in two phases, one for each semester that year. Even then, our course moderator made sure to let us know we’d only scratched the surface of Java.

Naturally at the beginning of Year 3, after a year of intensive Java, we were introduced to Android Programming. It’s no surprise here that the language we did Android Programming in was Java.

Deliberately Bulky

It made sense that they should teach us Android Programming in a language we were familiar with – we breezed right through it. Being developers in training, we set out only to impress our peers - scare them with lines of code that reached up to a thousand for a single class. Nothing was optimized or refactored, which meant everything we wrote was bulky.

Out of Class

Occasionally, we got word of a new language that was being used for Android programming. My opinion (which has since come back to haunt me) was that Java was unshakable. A language that had been in use since 1996, couldn’t be replaced by a language that was only a year or two old (also a warped opinion, because Kotlin has been in production since 2011). The flaw in my plan was:

  1. Newer languages are always created to be better than their predecessors. It should’ve been obvious that Kotlin had picked out the best features of Java, while still introducing its own benefits.
  2. Kotlin is supported by JetBrains and Google. As a developer, I should’ve realized this was a flat-out endorsement of Kotlin by Google. And because Google owns Android, that was a major alert that we should start taking seriously.

The Conversion

Even with all these warnings, I should’ve kickstarted my study of Kotlin. But instead, I kept advancing my Android development skills using Java. I’ve been an Android developer for a little over a year now, and the realization of the urgency to learn Kotlin has crept up on me for two months. Today, I have decided to start learning Kotlin.

What Happened?

1. Developers Dash

There is a common saying that goes “Learning never stops”. I understand its relevance for every profession but this saying seems especially relevant to software developers. Every year, there is a new library, tool or framework that’s being released. Every other year, there is a new language too. That means that even as a Senior developer, there’s a high chance that you’ll have to get out there and learn to use a whole new way to do the things that you already know how to because it is faster, better and will make your work easier. FOMO isn’t a factor for this studying as much as losing your job is.

I noticed the first changes on StackOverflow. Questions with problems written with Java were mostly dated between 2013 and 2016. Newer questions, dated 2017 to 2019 had chances of problems written in Kotlin.

Second, two years ago questions and answers occasionally included Kotlin. Today, I have to include ‘Java’ to my search term otherwise StackOverflow Android problems are almost always in Kotlin. Fellow developers seemed to have taken on the language I had refused to.

2. Tutorials Transformed.

Software development requires a lot of studying before you are able to do anything relevant. And studying, in this case, doesn’t mean several hours seated in class, or degree upon degree. Studying, in this case, is spending hours reading documentation, having your IDE’s and Text Editors running, opening so many tabs your browser starts to lag, and an endless number of tutorials. So far, the tutorials and guides that have changed their programming language to include:

a) Online Courses

At the very top of the study tier are the famed websites, for example Udacity, Coursera, and Pluralsight. These websites have started offering Introduction to Android Programming courses in Kotlin. That means that all first-time developers will be starting out knowing only Kotlin, giving them the upper hand both as developers and on the job market, while all the developers here are being given a chance to learn the new language.

b) Android Guides

Even with enough experience, it is still necessary that a developer should rely on guides from the creators of the programming language. Android developers are lucky enough to be given sample apps as guides from Android, to show them what their apps need to look like. I found the perfect Android JetPack guide (named Android Sunflower), but there’s a catch. The entire guide is written in Kotlin. This fact literally forced me into the Kotlin corner.

c) Tutorial Bogs

The most extensive Android Programming blogs such as MindOrks and Raywenderlich are using Kotlin. Sure, other blogs like AndroidHive and JournalDev are still using Java, but if you are looking for tutorials on new technologies such as the MVVP architecture, they’re almost all written in Kotlin. This means that any reliable alternatives to Online Courses and Android Guides have also been transformed.

3. Common Sense

The final reason for my decision n to start learning Kotlin was simple. Kotlin is evidently being designed with Android developers in mind. From the tutorials, it is clear that Kotlin is simple, concise and lets you do a lot more with a lot less code. The good news is Kotlin is designed to work alongside Java, meaning that the transition doesn’t have to be drastic. We are able to ease into using Kotlin until it completely overshadows all the Java we knew. So, why not?

Study Tools

Its been a little difficult finding a starting point for Kotlin, but here are the options I have found so far:

1. SoloLearn

In 2016, SoloLearn was my study buddy. I spent so many hours on the app, I once topped the country in the number of points I’d gained for a week. It's a simple little Android app that provides the basics of a language, lets you compete with other users and provides study challenges. Perfect for beginners!

 2. Kotlin Bootcamp for Programmers

This is a free course provided by Udacity for people looking to start learning Kotlin. On completion, one can advance to the course ‘Developing Android with Kotlin’, also by Udacity.

 3. Android Development with Kotlin by Mikhail Glukhikh and Stephen Goncharov

Because you can never go wrong with books. This book takes you through everything you need to know about, well, Kotlin for Android Development.

4. Kotlin Koans

The course is available in IntelliJ IDEA or Android Studio. Pretty neat, given you’ll be learning in your workspace.

And...

It's a wrap. Hopefully, I will be able to share the things that I learn in Kotlin soon. See you on the other side!