I looked, just now, at all the Make alternatives mentioned: Task, Mage and Just.
Those first two are nowhere near as easy to read as Makefiles. The last one, Just, looks good, though.
At least Cmake files are easy to read, but many of these alternatives are just poor UI, compared to Makefiles. I mean, using YAML of all things and thinking it's some sort of improvement over Make syntax?
1. Mage is just insane. In what world is this:
func Build() error {
if err := sh.Run("go", "mod", "download"); err != nil {
return err
}
return sh.Run("go", "install", "./...")
}
More readable than this:
build:
go mod download
go install ./...
2. Task - not just significant whitespace, but significant whitespace
everywhere, due to a poor format (YAML). Look at the example given:
version: '3'
tasks:
build:
deps: [assets]
cmds:
- go build -v -i main.go
assets:
cmds:
- esbuild --bundle --minify css/index.css > public/bundle.css
Compare with Makefile that does exactly the same thing:
build: assets
go build -v -i main.go
assets:
esbuild --bundle --minify css/index.css > public/bundle.css
These alternatives to "Make an easier Make" appear to not know about Make in the first place.