(but not necessarily found elsewhere)
- Native Sourcemap support: JavaScript and CSS often need these for debugging purposses. Managing this manually tends to be a complete PITA. Also we want a way to globally turn these off, if we need better build time (see next).
- Native Watch & Serve: Setting up a dev environment should be straightforward, as the build tool should support mutliple environments, but also the abbility to watch source files and serve them from itself.
- Lazy: Shouldn't rebuild stuff if it doesn't need to.
- Native concurrency: Detect dependencies and parallelize automatically.
- Good error reporting: Build tools tend to suck in telling you what went wrong.
- Code over configuration: No more 1000LOC+ JSON files please!
- (optional) Opaque file management: I want to specify what files I want in my destination directory, but I don't want to manage intermediary files.
- Support for test-type tasks: Tests need to give users reasonable output, but want to run as fast as possible.
- Easy API, so plugins and whatnot can happen.
- Native Live-Reload: At least for styles.
- make: is lazy
- grunt: ok API, best JS ecosystem
- gulp: is fast, native concurrency (to an extent)
- brocolli: has opaque filesystem, is somewhat lazy
Note to self: http://cr.yp.to/redo.html