We rarely consider our builds as an area worthy of our own engineering attention. Our needs are usually met by the vast array of complex but "standard" tools. To the pragmatic engineer their complexity is a warning: don't try this yourself, it's too hard!
What if it wasn't? What if the capabilities of computers and the affordances of modern languages invalidated the assumptions made by the "standard" tool authors a long time ago?
These are the questions we raise, and try to answer, with Boot: "build tooling" written in Clojure. Boot is an executable, a Clojure library, and a mental model that can be used to deconstruct, and solve programmatically, nearly any build scenario. Boot has abstractions for command-line DSLs, the filesystem, and the classpath that users can combine simply and on their own with small, concise Clojure programs.
I will explain Boot's central concepts and demonstrate its use in a variety of build situations involving at least Java, JRuby, and Clojure.