Exploring Scala Tooling ecosystem
summary
Compares concrete tools and behaviors: Metals uses SemanticDB and connects to Bloop or SBT via BSP, giving near‑real‑time compiler feedback, signature popups and code evaluation while editing; Build Server Protocol keeps incremental compilation state so restarts avoid full recompiles; shows which build tools support parallel or cached builds (SBT, Mill, Pants, Bazel, Fury, CBT) and which are used at scale; notes where functionality is incomplete or works (e.g. Metals now production ready, Pants/Bazel for large mono repos).
AI-written summary · about
chapters (4)
- 0:00Start
- 5:10LSP: Language Server Protocol The Language Server Protocol defines the protocol used between an editor or an IDE and a language server that provides language features like auto complete, go to definition, find all references, etc.
- 14:06Compiling deduplication • Compiling isolation • Zipkin tracing support • Use Ammonite by default in bloop console Support for Scala 2.13.x, JDK 9 & 11
- 15:14CBT: Chris' Build Tool • Quite simple (even the source code!) Builds are programs (in Scala) • JVM method invocation • Reproducible builds • Command line and shell integration • Aims to make it easy for devs to be in control • Built-in Dotly support (experimental)
related talks
29mExploring Scala Tooling ecosystem
41mUnleashing the Full Potential of Metals
39mMeet Bloop and Get More Productive with Scala
47mMetals rich code editing for Scala in VS Code Vim Emacs
44mMeet bloop and get more productive with Scala
46mSix steps from zero to IDE
47mDesign Challenges of Bloop
03mInterview
