~/talk

Slow-Auto, Inconvenient-Semi: escaping false dichotomy with sanely-automatic derivation

Talkat Scalar Conference 2025 · 2025-03-27..03-28· [scala, developer-experience]
slides:none on file

Shows a concrete replacement for “automatic vs semi‑automatic”: a sanely-automatic derivation that derives recursively, caches intermediate defs, and still lets user‑provided implicits override defaults. Implements it as a macro in Chimney and a jsoniter wrapper; a 5‑level nested case class triggers ~40s compile with naive automatic vs ~10s with semi‑auto on Scala 3, while jsoniter‑style derivation is 2–3x faster at runtime and avoids the compilation explosions. Error messages and debuggability improve.

AI-written summary · about

  1. 0:00Slow-Auto and derivation intro
  2. 3:35Type classes in Scala
  3. 7:11Automatic vs semi-automatic
  4. 14:03Why semi-automatic matters
  5. 18:18Derivation performance impact
  6. 21:29Error messages across libraries
  7. 26:42JSON and recursive derivation
  8. 31:55Recursive derivation patterns
  9. 34:00Cats Show comparison
  10. 37:12Macro optimizations and errors
  11. 40:25Scala 3 benchmarks
  12. 41:27Summary and call to action
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.