Kotlin: What You Need To Know About The New Language
Sean McGowanMay 18th, 20173 minute read
Sean is a technical researcher & writer at Codal, authoring blog posts on topics ranging from UX design to the Internet of Things. Working alongside developers, designers, and marketers, Sean helps support the writing team to ensure Codal produces engaging web content of the highest quality. When not writing about the latest innovations in app design, Sean can be found cooking, watching old movies, or complaining about the shortcomings of his favorite Philadelphia sports teams.
The survival of any language, whether a human or computer one, depends on repeated, recognized use. Its rules must be mutually agreed upon by the community speaking it, and it must be used in everyday applications. Without constant, consistent use, the language dies.
So it’s an excellent sign for Kotlin, JetBrains’ statically-typed, object-oriented programming language, that Google announced at its I/O conference yesterday that Kotlin would be officially supported on the Android platform.
It’s not exactly surprising news for the budding language—Kotlin has already been adopted by major players in the app marketplace, including Pinterest and Uber. Other apps, like Basecamp & Keepsafe, have built their Android versions entirely on Kotlin.
But having Google officially recognize the language for Android development is not just another glowing testimonial to slap on the marketing site—it validates the inherent purpose of Kotlin. Specifically designed to be a better Java, Kotlin is an answer to the Android platform’s struggles with Java 6. For Google to formally acknowledge it cements Jetbrains' language as a mainstay of Android dev.
Their new status as an official language is well-deserved too, as Kotlin not only remedies some of the more frustrating pain points of developing Android apps, but also delivers some new advantages for developers to get excited about.
Before delving into Kotlin’s promising features, it’s important to note its most crucial ones: compatibility and interoperability. Kotlin plays nice with earlier versions of Java, meaning the new language can seamlessly run on older Android devices, and existing libraries don’t have to be retooled for a Kotlin application.
Kotlin’s interoperability with Java also lends itself to a smoother transition for companies that are migrating from JVM 6 to the emergent language. As Android development companies familiarize themselves with Kotlin, they won’t have to sacrifice past projects or previously written code.
To further facilitate a move to Kotlin, the JetBrains’ team also provides a set of tools for developers to get started with the nascent language without a hitch. The Anko library, for example, provides wrappers around Android APIs, and a DSL that can replace .xml files with Kotlin native code.
Kotlin’s Own Advantages
Because of its condensed runtime library, Kotlin also boasts a significantly reduced footprint (their site claims it adds less than 100K to the size of an .apk file), while running just as fast, if not faster, than Java.
Designed to mitigate the headaches of JVM 6, Kotlin explicitly addresses just about all of its predecessor’s flaws. JetBrain's language designers eschewed raw types, SAM-conversions, wildcards, and checked exceptions—all typical annoyances when working in Java.
In addition to these treatments, Kotlin offfers an impressive feature list of its own. From string templates and range expressions, to coroutines and smart casts, Kotlin clearly corroborates its coveted status as one of the official languages of Android.
The Path Forward
Our developers are alreading learning Kotlin, and soon we’ll be able to offer mobile and web solutions in the robust new language. By the time Kotlin becomes an industry-standard, Codal's development team will have already mastered the programming language.
For premier Android development agencies like Codal, Kotlin is an exciting new medium, a new frontier to explore and experiment with, and a new tool in our development arsenal for engineering world-class applications for Android.