Android has come a long way since it launched in 2008, from launch, most people associated Android with Java, even if it has support for other languages (C++ is an option when creating a new project!) but that has changed in recent years, Google has been pushing more alternatives to Java, let’s take a look at the most important languages in Android: Java, Kotlin and most recently Dart.
Let’s start with some history: back in 2008, there was a significant shift in how mobile phones were perceived, many will remember why: in 2007 the iPhone was released, the touchscreen technology was something completely unexpected, and it exploded in popularity. The original Android phone was meant to look more like a Blackberry, this prototype was scrapped, as the new focus of most phone developers shifted towards touchscreens.
In 2008, the HTC Dream, the first phone to run Android was released, the rest, as they say, is history. Android went and became the largest market share mobile system in the world.
How did Google manage that big of a success? Stellar support, constant updates, and advances are some of the important reasons. However, more importantly, Android built upon open-source, already existing systems, (Android is open source itself), this meant Android could tap into an already large user base. Basing Android in the Linux kernel, and using Java to develop made Android very popular with third-party developers.
Java’s features including platform independence, incredibly detailed documentation, and flexibility as part of the reasons it was picked, and, for years to come, Android development became synonymous with Java.
Android uses Java as a programming language, yes, but Android Applications didn’t compile to JVM, but to Android’s own Dalvik Virtual Machine (nowadays Android Runtime Environment), this became a huge problem, that has continued to this very day, with Oracle, but it’s a topic for another time.
While often overlooked, Android’s XML was another great decision, XML is often used in web communications as a means of transferring data, so, like Java, it was widely known and used.
Android’s use of XML is to define the layouts of the applications.
Before Android Studio release in 2013, Eclipse, with the Android Development Tools plugin was Android official IDE.
Android also supported C++, but it never became as popular as Java. so Java remained the main supported language to develop Android Applications and so it continued, that is, until 2017.
In 2017 Android announced support to the Kotlin language, (later on Kotlin would become the official Android Development language), but why exactly was Kotlin chosen?
You can check the Kotlin official page for more details, but one of the biggest reasons is that Kotlin is fully interoperable with Java, meaning that any existing Java code works completely with Kotlin. Kotlin makes use of Functional Programming and has quite some features that set it apart from Java, like smart casts and lambda functions.
Not long after, Google announced Flutter, Flutter is a mobile UI framework that can be used to create apps for both iOS and Android. The interesting part about flutter is that it doesn’t use Java or Kotlin, instead, it uses Google’s own language Dart. This move led many to speculate that Google was trying to replace Android, but nothing has come out to support that, Dart/Flutter is also very new (compared to Android) and has a bigger entry barrier, so if that was the case it will take some time to catch on. Right now Flutter is co-existing with Android.
This is a very brief and relatively small view of the history of Android, we didn’t cover the many differences that came with each new API release, that can cover several articles on its own, or Android’s other projects, like Android TV or Android Wear. Android has done a lot over its 11 years on the market, hopefully, we’ll dive in again for more Android history on another time.
Author: Ing. Erwin Gonzalez