Comment by krautsauer
20 days ago
Make is incredibly cursed. My favorite example is it having a built-in rule (oversimplified, some extra Makefile code that is pretended to exist in every Makefile) that will extract files from a version control system. https://www.gnu.org/software/make/manual/html_node/Catalogue...
What you're saying is essentially ”Just Write Bash Scripts”, but with an extra layer of insanity on top. I hate it when I encounter a project like this.
https://github.com/casey/just is an uncursed make (for task running purposes - it's not a general build system)
How does `just` compare to Task (https://taskfile.dev/)?
Just uses make-like syntax, not yaml, which I view as a huge advantage.
No I'm saying use Makefiles, which work just fine. Mark your targets with PHONY and move on.
You still get bash scripts in the targets, with $ escape hell and weirdness around multiline scripts, ordering & parallelism control headaches, and no support for background services.
The only sane use for Makefiles is running a few simple commands in independent targets, but do you really need make then?
(The argument that "everyone has it installed" is moot to me. I don't.)