Kotlin for Python developers

By Aasmund Eldhuset

Earlier this year, the Khan Academy Engineering organization decided to introduce Kotlin as an alternative backend language alongside Python (in which almost all of our existing backend codebase is written) — see the linked post for details on our decision process. While there are a number of excellent resources for learning Kotlin, most of them seem geared towards people who already know Java. So I decided to write a quick “getting started” guide that would explain Kotlin in terms of Python. It ballooned a bit in scope and thoroughness as I wrote it, and ended up being fairly extensive.

In the hopes that other developers will find it useful, we have released the resulting Kotlin for Python developers document publicly! It should also be useful to developers who are used to other dynamically typed languages.

Please note that it is not intended to cover all the features of Kotlin, and that it is written in the form of a textbook rather than as a reference manual. It is not a part of Khan Academy’s official product offering, but rather an internal resource that we’re providing “as is” for the benefit of the programming community, so the quality bar is lower than for our official educational content — if you find any errors, please submit an issue or a pull request.