The dark side of kotlin
summary
Covers concrete pitfalls: Kotlin enables powerful DSLs (JSON, REST routing) via operator overloading and last-lambda-outside-braces syntax but that creates gotchas (method-reference vs lambda, single-arg implicit it) and even Unicode tricks like using an invisible Mongolian character to fake punctuation. Coroutines get misused to replace nested flatMap flows (coroutines used to implement flatMap), suspend propagation makes many functions “suspend” and compiler/bytecode can erase return types so suspend functions return Any at bytecode; recommends using the detekt linter to forbid risky patterns.
AI-written summary · about
chapters (22)
- 0:00Welcome
- 1:49Abstraction in programming
- 6:03Abstraction investment failures
- 6:27HashMap leaky abstraction
- 9:43Kotlin vs Java
- 10:47Kotlin features beyond Java
- 11:51Type inference with VAR
- 13:19Easier generics
- 14:01Function types and lambdas
- 17:36Inheriting function types
- 18:40Operator overloading
- 20:43Lambda syntax quirks
- 23:13If expressions and lambdas
- 24:59Kotlin baptism
- 28:08DSLs with Kotlin
- 33:11Deserialization with interfaces
- 35:37Type classes
- 38:46FlatMap with coroutines
- 41:57Coroutines problems
- 42:18Coroutines type safety
- 44:05Linters for Kotlin
- 45:07Changing the language








