Technical people: any person dedicated to any subject, with an specific and in deep knowledge of that subject.
Human beings tend to see the world as they are, and technical people rationalizes their world around their knowledge.
For any decision in life, whether it impacts us directly or not, we’ll try to rationalize it according to our knowledge of the world -naturally!-. Specifically, on the software industry, developers tend to think many decisions in the industry are based on the technology, relative to it’s superiority: We’ll use this tech for that because the tech is better. However, the reality is that most decisions made on the software industry any company are based on the business side, not technology. That doesn’t mean technology isn’t a factor, but it’s not the one that determines the end decision. Case in point, Kotlin.
How did we get to Kotlin?
Back in the days, C++ and Pascal were the modern standards for programming. Then a startup (NeXT) founded by a very famous guy (Steve Jobs) proposed that the language to make software for their new flashy platform (NeXT OS) was a new one called Objective-C. This language was object oriented, and compared with C++, it was a dream come true. Around the same time, a big company called Sun issued their vision of the object oriented language, they called it Java. Of course, both languages had different mission in life, nevertheless, the object oriented paradigm remained.
Fast forward 20 years, and when it came to offer an environment to the nascent mobile devices, it was no coincidence that Objective-C and Java, respectively for iOS and Android, were the natural choice for each vendor (Apple and Google) to offer.
Even at that time, those languages were showing off their age. Apple jumped ahead and proposed a new easier language to be used to program their platform. This language is called Swift. A decision applauded by iOS developers, many of whom, younger than Objective-C, find this last one, cumbersome and archaic. Apparently they never heard of assembler 🙂
Anyway, on the android side, Java was being used. Different from Objective-C, Java has a well established knowledge around the world. Java is not a standard, but is close to. If Cobol has not disappeared, judging by that measure, Java will have a healthy life for decades to come. On that side, Google didn’t have to worry about it. In short, it was easier and more practical to learn Java than to learn Objective-C. Java didn’t became easier because of its technology, it became easier because it was a pseudo standard. As such, there’s a lot information and experience around it, thus it became a more polished platform.
Sun… set
Sun was a giant of its time, for many reasons it couldn’t capitalize on the new waves of technology and started to have financial problems. Remember, Sun was the owner of Java. By its side, Oracle was alive and kicking, however many of Oracle products depended on Java. Oracle and Sun were partners, as long as Sun was healthy, but if Sun disappeared or -worst- was swallowed by an Oracle competitor, it would hold hostage Oracle. That wasn’t good positions to be in. So … Oracle bought Sun mainly for business reasons and not for its technology. It’s true that Sun DID had a lot of technology to take advantage of (more on that below), like: MySQL, Sparc, Solaris, Java, ton of patents, etc. etc. etc. But the main reason was Java, because Oracle business depended on it. See, business driven decision, not technological one.
Oracle also loves courts. As quickly as it acquired Sun, it went ahead and sued Google for copyright infringement on Java. That court case is a soap opera, it has been argued in court for 6 years and counting. Oracle has lost each time, but it will not give up until it reached its objective: capitalize on Android success by being build on Java. Oracles wants a piece of it.
Kotlin to the rescue
As its frequent on the software business, somebody came with the idea of Kotlin and some people were loving it. It’s open source and compared to Java, the syntax (how’s written) is easier (like the case of Swift), what’s not to love!
Initially with Oracle losing each time on court, Google didn’t have to worry about Java. However, each time Oracle appealed the decision, it came closer to Google. As the case of Oracle buying Sun because it was vulnerable because of Java, now Google was in the same situation. This time, Google couldn’t buy out Oracle.
Two years ago, Google decided to adopt and support formally Kotlin for Android development. Developers loved the idea, because the language is superior than Java. And now holy wars are being fought with the keyboard arguing which language is better than the other. But technical people arguing, miss the point that the decision of adopting Kotlin didn’t come because of the technical superiority more than business decision.
On the last Google I/O, among the flurry of announcements there was a particularly one that is relevant to the subject at hand:
Android Studio is going to be supported on Chromebooks. Let that sink…
This will mean that Chromebooks will become a development platform, something in itself significant, because now there’s no dependency on neither Apple nor Windows to develop apps for Android. Also it gives Google complete control of the development environment. So future android developers can -in theory- live by just having a Chromebook. We’ll see how practical this will really become, but on paper is significant.
In case Google loses to Oracle, it could mean a big payment, but the worst could be that now Oracle dictates where Android goes, and that’s a situation Google -naturally- doesn’t want to be in. It’s better to proceed now, start changing the platform right away with the excuse of being more modern, but with the reality that if such scenario comes true, Kotlin adoption will be already established and the final impact on Android will be minimal, a very wise business decision.