An article by Kevin Dangoor from Khan Engineering about how Khan Academy is embarking on a huge effort to rebuild our server software on a more modern stack in Go.
Ten years is a long time in technology! Academy chose Python as their backend server language and it has been a productive choice for them. Of course, ten years ago they chose Python 2 because Python 3 was still very new and not well supported.
While considering transformation they were also looking at the languages that have first-class support in Google App Engine. They considered Go and Kotlin. Kotlin is a very expressive language with an impressive set of features. Go, on the other hand, offers simplicity and consistency. The Go team is focused on making a language which helps teams reliably ship software over the long-term.
Finally, we ran a bunch of tests around performance and found that Go and Kotlin (on the JVM) perform similarly, with Kotlin being perhaps a few percent ahead. Go, however, used a lot less memory, which means that it can scale down to smaller instances.
The article then describes their journey:
- From monolith to services
- Cleaning house
- What’s not changing
- The plan
Good read with some interesting observations! Links to more articles with academy experience included.
[Read More]