Inspirations¶
I've used several task runners, usually as part of build tools. Below is a list of tools used or read about when building ds.
-
1976: make (C) - Together with its descendants,
makeis one of the most popular build & task running tools. It is fairly easy to make syntax errors and the tab-based indent drives me up the wall. -
2000: ant (Java) - an XML-based replacement for
make. I actually liked usingantquite a bit until I stopped writing Java and didn't want to havejavaas a dependency for mypythonprojects. -
2008: gradle (Groovy/Kotlin) - Written for the
jvm, I pretty much only use this for Android development. Can't say I love it. -
2010: npm (JavaScript) - Being able to add a simple
scriptsfield topackage.jsonmade it very easy to run dev scripts. Supportspreandpostlifecycle tasks. -
2010: pdm (Python) - Supports 4 different types of tasks including
cmd,shell,call, andcomposite. -
2012: composer (PHP) - Uses
composer.json, similar topackage.json. Supports pre- and post- task lifecycle for special tasks, command-line arguments, composite tasks, and other options. -
2016: yarn (JavaScript) - An alternative to
npmwhich also supports command-line arguments. -
2016: pnpm (JavaScript) - Another alternative to
npmwhich supports many more options including running tasks in parallel. -
2016: just (Rust) - Defines tasks in a
justfile, similar tomake. Supports detecting cycles, running parallel, and many other options. -
2016: cargo-run-script (Rust) - Uses
Cargo.tomlto configure scripts and supports argument substitution ($1,$2, etc.). -
2017: cargo-make (Rust) - Very extensive port of
maketo Rust defining tasks inMakefile.toml. -
2022: hatch (Python) - Defines environment-specific scripts with the ability to suppress errors, like
make. -
2023: bun (Zig) - An alternative to
nodeandnpm. -
2023: rye (Rust) - Up-and-coming replacement for managing python projects.