Evolving Kotlin Language Defaults | Michail Zarečenskij

Recording brought to you by American Express. https://americanexpress.io/kotlin-jobs When designing a programming language, we decide what’s safe, what’s convenient, and what’s practical. These choices become our defaults, the way we believe most programs should be written in that language. However, defaults evolve over time. What once seemed like a good idea may later become a source of bugs and friction. In fact, wrong defaults are often one of the main reasons new programming languages emerge. In this session, we’ll explore how programming languages deal with their defaults. What tools do they have at their disposal, and what are the costs of changing defaults? We’ll look at how languages transition from mutability to immutability, adopt null-safety, and add deeper analyses to track object locality and many more. Expect examples from C#, Java, Swift, Dart, and, of course, how we’re evolving defaults in Kotlin!