Skip to content

Instantly share code, notes, and snippets.

@inodaf
Last active May 16, 2024 18:24
Show Gist options
  • Save inodaf/04b6c23e3c39c00194fce830ef65f08d to your computer and use it in GitHub Desktop.
Save inodaf/04b6c23e3c39c00194fce830ef65f08d to your computer and use it in GitHub Desktop.
N reasons to use GNU Make (in my opinion)
  • ✅ You probably have Make installed by default, your CI does too;
  • ✅ When you write a Makefile, you are just defining your dependency graph;
  • ✅ It is incremental, so it only create files, compile, run tasks that are necessary;
  • ✅ Efficient. It can run jobs in parallel;
  • ✅ Easily integrates with any CLI tool;
  • ✅ Superfast, it's made in C;
  • ✅ A boring tool: stable, reliable, predictable, fast and powerful;
  • ✅ Your CI will love it;
  • ✅ Full control over your workflow;
  • ✅ Used for compiling large C, Go and many other codebase for decades;
  • ✅ Easy to prepare and setup a cloned/forked project in a dev machine;
  • ✅ Efficient tool for managing development workflows (Tasks, Aliases, Dev Automation);
  • ✅ It makes visible how your source code is managed, it is not a "magic black box";
  • ✅ Can save you from lots of dependencies that tried to do the same thing;
  • ✅ Remote Caching? Yes, possible;
  • ✅ Local Caching? Made for it;
  • ✅ It is language agnostic, learn once, use everywhere;
  • ✅ Monorepo? Tasks and Commands can be run recursively in a workspace;
  • ✅ Monorepo? Every package can have its own Makefile;
  • ✅ Task or Command Runner? Point directly to the executable you need, no need for a slow proxy like npm;
  • ✅ You will laugh of satisfaction when you try it;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment