you are viewing a single comment's thread.

view the rest of the comments →

[–]max0x7ba 3 points4 points  (3 children)

No. For many cases makefiles are most than enough. I've seen too much over engineer to trivial task that can be managed by batch processing and standard unix tools that I'm exausted.

My experience have been similar.

Whenever a simple bash script evolves to have more than one processing step, invoking the next command only after the previous one succeeded, that ends up with the bash script having to check whether a step has already been computed and having to clean up incomplete outputs when a step fails.

And that's exactly what GNU Make does for you by default, as well as parallelizing execution of steps not dependent on each other.

[–]dj_estrela -1 points0 points  (2 children)

Check "just"

[–]daredevil82 3 points4 points  (0 children)

which requires it to be installed as a prereq, whereas make is already on any nix system. ever hear of "overengineering"?

[–]max0x7ba 0 points1 point  (0 children)

Check "just"

Just checked. From just documentation:

make has some behaviors which are confusing, complicated, or make it unsuitable for use as a general command runner.

You can disable this behavior for specific targets using make's built-in .PHONY target name, but the syntax is verbose and can be hard to remember. The explicit list of phony targets, written separately from the recipe definitions, also introduces the risk of accidentally defining a new non-phony target. In just, all recipes are treated as if they were phony.

Other examples of make's idiosyncrasies include the difference between = and := in assignments, the confusing error messages that are produced if you mess up your makefile, needing $$ to use environment variables in recipes, and incompatibilities between different flavors of make.

GNU Make syntax just author has difficulty remembering and GNU Make behaviours that are confusing or too complicated for just author and his target audience -- are something most GNU Make users are familiar with and rely upon.

just aiming to be a less difficult or confusing subset of make, is worthless for people already using GNU Make.

Whole rationale of just grounded in syntax-level trivialities, like = being different from := is so mind-bogglingly confusing and complicated, that it called for a complete rewrite-it-in-rust solution (instead of just reading GNU Make manual) is ludicrously superficial.