Simply Scala
summary
Scala 3 reduces language surface and the main complexity comes from libraries, frameworks and tooling rather than core syntax. Examples: the compiler uses a mutable array for Levenshtein and a local mutable set for graph traversal because mutation is clearer and faster than threading immutable state; option matching is often simpler than mapping pipelines. Tools and metrics include Scala CLI (fast runner), tasty-chunk profiling and a 4,000 lines/sec warm-compile baseline. A prototype capture calculus and bleeding-edge capture checker (ycc) aim to track capabilities; a curated Scala toolkit targets newcomer-friendly libraries.
AI-written summary · about
chapters (15)
- 0:00Introduction and talk overview
- 1:27Scala 3 simplicity improvements
- 3:34Common misconceptions about Scala
- 5:45Causes of Scala complexity
- 9:40Complexity vs type safety trade-offs
- 13:11Mutability and functional purity
- 17:49Library design and abstraction pitfalls
- 19:55Compiler speed and complexity
- 23:28Simpler tooling and Scala CLI
- 24:50Scala Toolkit for newcomers
- 26:54Effect typing challenges
- 29:25Caprese project introduction
- 46:42Capability-based effects research
- 52:21Future of Scala and effects
- 53:48Q&A on codebase complexity








