Simpler Scala Builds with Functional and Object-Oriented Programming
summary
Mill is a Scala JVM build tool that proves clean compile in ~24s on a realistic port of Gatling (one‑day port), by auto‑managing a background daemon and per‑task output folders so tasks are pure, cachable, and parallelizable. It exposes build logic as ordinary methods and overrides, yielding IDE jump‑to‑definition and navigation across build code. Custom tasks are normal Scala methods — e.g. a line count task that imports Scalatags to render HTML — and Mill adds selective testing, Chrome tracing per command, and deterministic caching so builds are faster, debuggable, and easier to extend.
AI-written summary · about
chapters (11)
- 0:00Introduction
- 1:19Build tools hard for users
- 12:12Build tools hard for implementers
- 16:23Mill and its goals
- 17:28Mill performance
- 21:42Mill profiles and debugging
- 22:04Mill IDE support
- 26:36Mill extensibility
- 33:00Functional vs OO builds
- 41:44Summary and try Mill
- 42:50Q&A
related talks
47mEasy Scala Builds with the Mill Build Tool
44mA Deep Dive into the Mill Scala Build Tool
30mScripting on the JVM with Scala
50mHow to Test a Milion Lines of Code without Writing a Single Test
48mMassively Parallel Distributed Scala Compilation And You
32mSpeedy Scala Builds at Databricks
21mReasonable Scala Compiler
46mBuilding Scala with Bazel
