Simon Ogorodnik
DevLead @ Kotlin Compiler, JetBrains
Simon Ogorodnik is a member of the Kotlin team at JetBrains. He started his journey in the Kotlin IDE team when he was just 18 years old and has since advanced to the position of Development Lead for the Kotlin Compiler. Previously, he led the K2 project as its TechLead. In his early days with the IDE team, he initiated the new J2K (Java2Kotlin converter), maintained Dokka, and made several performance optimization efforts.
K2: How to make a better compiler but keep Kotlin the same
As a former TechLead of the K2 project, I’ll tell you how and why we switched from refactoring to rewriting the Compiler Frontend. Beginning the not-inconsiderable journey that brought us to Kotlin 2.0
“We need a better architecture” - probably, everyone in software development heard at least once. However, “OK, let’s make it” rarely follows. But, one does not simply refactor the Kotlin 1.1 compiler to solve its problems. So… We decided to re-write a considerable part of it.
I’ll tell you about:
- Why did we re-implement the huge compiler part, and what does an FIR tree have to do with it
- How we test the compiler and ensure a smooth transition to the new version
- How to make the new compiler but keep the language the same
- Last, what is EAP feedback, and why is it so important