The Programming Language After Kotlin – with the Creator of Kotlin
#AI

The Programming Language After Kotlin – with the Creator of Kotlin

DevOps Reporter
4 min read

Andrey Breslav, creator of Kotlin, shares the language's origins, design decisions, and why he's building CodeSpeak as a response to AI-driven complexity in software development.

Andrey Breslav, the creator of Kotlin and founder of CodeSpeak, joined me for a wide-ranging conversation about language design, the evolution of software engineering, and what comes after traditional programming languages in an AI-driven world.

Why Kotlin Was Born

Kotlin emerged because Java stagnated for six years. By 2010, the last major Java release was Java 5 in 2004. Java 6 (2006) made zero language changes, Java 7 (2011) made minor ones, and lambdas didn't arrive until 2014. Meanwhile C# had lambdas, properties, and more — creating a clear market opening.

But here's what surprised me: Kotlin's first version wasn't a compiler. It was an IDE plugin. In a smart move, Andrey decided to build an IDE plugin that utilized IntelliJ's parsing infrastructure first. This let him demo the language interactively before anything could compile. As he recalled: "I could show off the language as if it existed because it had some tooling, but I couldn't compile anything."

The Team Behind the Language

The initial Kotlin team was almost entirely made up of new grads. Andrey hired some of his former university students to work on Kotlin. Many became core contributors who built foundational parts of the language. I found this story inspiring: it's a reminder that you don't need lots of experience to build durable things, as long as you are a fast learner.

Design Decisions That Shaped Kotlin

Kotlin used a parser hack from C# to keep angle brackets for generics, and solved a "mathematically unresolvable" grammar ambiguity. The < symbol is both "less than" and "generic type." Kotlin took inspiration from C# for its generics implementation. Java worked around it awkwardly (requiring a dot prefix), Scala used square brackets. Kotlin and C# simply disambiguate ad hoc in the parser, keeping familiar syntax.

Smart casts were inspired by an obscure language called Gosu. Smart casts is a pleasant language feature in Kotlin, which is rare to see in other typesafe languages: after an if (x is String) check, Kotlin automatically treats x as String inside the branch — eliminating the redundant cast that litters Java code.

Omitting the ternary operator is Andrey's biggest design regret. This is the ternary operator, present in most languages: condition ? valueIfTrue : valueIfFalse. In Kotlin, Andrey removed it because if was already an expression, freeing up ? and : for nullable types and type annotations made sense. But if, as an expression, turned out to be verbose. Andrey noted: "by the time I agreed [that removing the operator was a mistake], it was too late because you can't retrofit the ternary operator in the current syntax."

Kotlin's Accidental Android Success

Kotlin adding Android support was accidental. An Android developer literally asked the team "does Kotlin work on Android?", the Kotlin team checked, and their toolchain crashed. The Android tools were stricter than the JVM because Android developers "actually read the spec" (ha!) Ironically, this strictness made Android a great testing environment for validating Kotlin's bytecode correctness, and it was the reason the Kotlin team fixed up Kotlin to also compile on the stricter Android JVM.

The Next Programming Language: CodeSpeak

Andrey is building a new programming language, but one based on English. CodeSpeak is neither a formal language, nor just prompting. It's designed for engineers, not casual users, and aims to shrink typical application code by roughly 10x. What remains is "the essence of software engineering" — only the things the human uniquely knows about what needs to happen, because "everything else, the machine knows as well."

The Future of Development Tools

2026 will be the year of the IDE comeback vs terminal-based tools. While Andrey praised Claude Code as "a complete breakthrough of what you can do in a terminal," he argued that we can work better, as devs, inside specialized environments. He expects new development environments built from the ground up for agent-first workflows.

Learning to Work with AI

There's demand to teach how to use AI coding skills better. As Andrey told me: "There are people who can prompt it much better than others. They cannot always articulate why their prompts work better, but you can learn it."

Andrey also urged all software engineers to push past initial skepticism and invest in learning, while ignoring the most outrageous social media claims on the future of software engineering. He closed our conversation with a message to software engineers skeptical about AI: "There is quite a bit of skill to using these AI coding tools. You can learn it, you can get a lot better at it. Do not necessarily believe everyone on Twitter: some people claim crazy things! Still, you can be very productive with these things when you use them well, and it's absolutely worth investing into that. In the future, it will still be engineers building complex systems. Keep that in mind: it's not like we all go to nothing."

Comments

Loading comments...