WeAreDevelopers LIVE Sep 14, 2023

Why Kotlin is the better Java and how you can start using it

Iris Hunkeler

Tired of verbose Java boilerplate and endless NullPointerExceptions? Discover how Kotlin's seamless JVM interoperability lets you safely modernize your codebase file-by-file.

Pause
Mute Enter Fullscreen
#1 about 5 min

Introduction to the Java and Kotlin ecosystems

An overview of Kotlin's popularity and historical context compared to Java.

#2 about 3 min

Kotlin language features and null safety

How Kotlin addresses null pointer exceptions by distinguishing between nullable and non-nullable types.

#3 about 3 min

Live coding demonstration of Kotlin null safety

A practical implementation showing compile-time errors for incorrect null variable assignments.

#4 about 3 min

Reducing boilerplate with Kotlin data classes

How data classes automatically generate constructors, getters, and standard methods compared to object schemas in Java.

#5 about 4 min

Writing and modifying data classes directly

Constructing objects using default parameters and managing immutability explicitly through assignment syntax.

#6 about 2 min

Enhancing classes via custom extension functions

Extending predefined library structures organically without defining explicit external utility classes.

#7 about 4 min

Implementing private extension functions for local scope

Adding internal functionality to an existing data class leveraging targeted scoping logic.

#8 about 2 min

Simplifying text formatting with contextual string templates

Embedding variables directly within strings instead of using verbose concatenation structures.

#9 about 1 min

Eliminating explicit casting overhead using smart casts

Leveraging logical checks to automatically infer and map explicit type boundaries.

#10 about 5 min

Applying smart casts and string template mechanisms together

Combining intelligent system inference and string interpolation functionality while greatly enhancing fundamental code text readability.

#11 about 5 min

Comparing missing features and historical language limitations

Evaluating discrepancies involving checked exceptions, primitives, and wildcard types alongside institutional reasons to maintain basic legacy patterns.

#12 about 2 min

Configuring runtime Java and Kotlin interoperability protocols

Managing dual-language mappings encompassing foundational accessor paradigms alongside remaining null safety limitations across languages.

#13 about 4 min

Testing cross-language compatibility limitations between classes

Recreating exceptions caused directly by accessing legacy structures missing internal boundary enforcement components.

#14 about 3 min

Recommended resources and frameworks for learning Kotlin natively

Leveraging official exercises, standardized reference files, and functional environments to vastly accelerate initial platform transitions.

#15 about 2 min

Summarizing the practical engineering advantages of writing Kotlin

Recapping how comprehensive structure enhancements optimize application stability routines, coding efficiency formats, and operational programmer satisfaction.

#16 about 3 min

Identifying valid scenarios for maintaining existing language architectures

Examining explicit instances where strong foundational stability concerns fundamentally outweigh immediate integration advantages produced by modern formats.

#17 about 2 min

Applying gradual framework migration strategies in Spring Boot

Utilizing basic tooling to iteratively swap language protocols explicitly without broadly disrupting backend functionality structures.

#18 about 2 min

Assessing common dependency workarounds against native syntactic paradigms

Evaluating cases where foundational plugins resolve code friction externally without actually changing structural integration pipelines.

#19 about 2 min

Contrasting capabilities and functional alternatives against Scala environments

Reviewing generalized production footprint scales comparing different environments explicitly optimized effectively against core object standards.

#20 about 3 min

Navigating team hesitation and transitional programming friction hurdles

Encouraging practical experimentation methods utilizing unstructured event environments meant to directly normalize organizational execution transitions.

#21 about 4 min

Justifying functional transition scopes for legacy maintenance codebases

Distinguishing the explicit boundaries between evolutionary feature builds versus entirely static lifecycle states preventing effective resource allocation efforts.

#22 about 2 min

Assessing baseline framework support and external community ecosystems

Measuring comparative bidirectional module capabilities scaling adequately alongside smaller raw overall participant interaction communities externally.

#23 about 3 min

Evaluating historical constraints against future platform feature parity

Recognizing structural obligations inherent inside deeply standardized foundations enforcing strict integration limitations across ongoing compilation builds natively.

Matching moments

3:03 min

Introduction to Kotlin history and Java ecosystem interoperability

Urs Peter · WWC 2022

3:01 min

Introduction to Kotlin and Java interoperability

Christian Woerz · LIVE

3:53 min

Key takeaways and future Kotlin Multiplatform improvements

Petar Marijanović · LIVE

4:21 min

Navigating Kotlin Multiplatform beyond the happy path

Andrea Della Porta Andrea Della Porta · WWC Europe 2026

4:20 min

Solving cross-platform drawbacks with Kotlin Multiplatform

Petar Marijanović · LIVE

3:09 min

Understanding Kotlin Multiplatform and its compiler targets

Petar Marijanović · LIVE

Upcoming sessions on this topic

Open session

World Congress 2026 North America

When Humans Stop Writing Code: Rethinking Languages, Compilers, and Responsibility

Simon Auer

Organizer of flutter vienna meetup and CEO of marqably

Simon Auer
Open session

World Congress 2026 North America

Look What Java Can Do Now: Live-Coding a GenAI MCP Server with the JAQ Stack

Suren Konathala

Senior Engineering Leader, Marketing & AdTech, AI GTM & Digital Experience Platforms, Java x AI

Suren Konathala
Open session

World Congress 2026 North America

Full Stack with Flutter - are we there yet?

Nemanja Stošić

Senior Flutter Developer

Nemanja Stošić
Open session

World Congress 2026 North America

The Broken Rung: How AI is Rebuilding Software Development from the Ground Up

Tomislav Tipurić

Chief Technology Officer, Nephos

Tomislav Tipurić
Open session

World Congress 2026 North America

How to generate business value through performance optimizations

Nikolai Sidiropulo

Software Engineer at Meta

Nikolai Sidiropulo
Open session

World Congress 2026 North America

public void saveMoney(AI): The Developer's Guide to Unit Economics

Hrushikesh Pokala

Senior Software Engineer Lead at Equifax

Hrushikesh Pokala