Overview
Andre Breslav, creator of Kotlin, shares the journey of building one of the world’s most adopted programming languages from 2010-2016. The core insight is that successful languages are pragmatic, not academic - Kotlin succeeded by borrowing proven ideas from other languages rather than inventing new concepts. He’s now working on Codespeak, a language based on English designed for the AI-driven era where preserving human intent becomes crucial.
Key Takeaways
- Build pragmatically, not academically - Kotlin succeeded because it borrowed proven ideas from existing languages rather than trying to invent new concepts, making it familiar and accessible to developers
- Solve real pain points systematically - The team spent months identifying specific problems with Java (verbosity, null pointer exceptions, outdated syntax) and designed targeted solutions for each issue
- Interoperability is harder than it looks - Making Kotlin work seamlessly with Java required years of complex engineering work, including building custom type systems and compiler tricks to bridge the gap between languages
- Preserve human intent in AI workflows - Current AI coding tools create a problem where you communicate with machines in human language but with teammates in code, losing the original intent and context
- Invest in learning AI tools skillfully - There’s significant skill involved in using AI coding tools effectively, and developers who master prompting and agent workflows will have a major productivity advantage
Topics Covered
- 0:00 - Andre’s Background and Journey to JetBrains: Andre’s path from computer science student in St. Petersburg to PhD work on domain-specific languages, leading to an unexpected invitation from JetBrains to create a new programming language
- 4:00 - The Problem with Java in 2010: Why Java was stagnating - no major updates since 2004, while C# was advancing rapidly with lambdas and modern features
- 6:30 - Dynamic vs Static Languages Trade-offs: The fundamental differences between dynamic languages (easy to start, hard to scale) and static languages (better for large projects and refactoring)
- 14:30 - How to Start Building a Language: The whiteboard design process, starting with identifying Java’s pain points and sketching solutions over months of discussion
- 21:00 - Naming Kotlin and Early Development: The story behind the name ‘Kotlin’ (originally ‘Jet’), starting with an IDE plugin first, and building the team with fresh graduates
- 24:30 - Key Kotlin Features and Design Decisions: Major improvements over Java: null safety, reduced boilerplate, type inference, and the decision to omit the ternary operator (which Andre regrets)
- 31:30 - Standing on Shoulders of Giants: How Kotlin deliberately borrowed ideas from Scala, C#, and Groovy rather than inventing new concepts, making it pragmatic for industry use
- 45:00 - Java Interoperability Challenges: The massive technical undertaking of making Kotlin work seamlessly with Java in both directions, requiring complex compiler tricks and type system adaptations
- 1:07:30 - Android Adoption and Google Partnership: How Kotlin unexpectedly took off on Android due to Java’s limitations on mobile, leading to Google’s surprise announcement of official support in 2017
- 1:18:30 - Codespeak - Programming for the AI Era: Andre’s new project: a programming language based on English that leverages LLMs to reduce code by 10x while preserving human intent and decision-making
- 1:38:30 - Future of Programming and Developer Advice: Predictions for developer tools, the importance of learning AI coding tools, and advice for engineers navigating the rapidly changing landscape