Builds are programs. Let's start treating them that way.

Most build tools are declarative, and for a long time they worked well for us. The problem is that the increasing number of platform, framework, and library combinations have made it impossible for these tools to be both declarative and comprehensive. Instead of a special-purpose DSL, Boot supplies abstractions and libraries you can use to automate nearly any build scenario with the full power of the Clojure language. It's not a build tool - it's build tooling.