Re:Show HN: Cr – Runs your tasks at maximum concurrency
by kazinator on Monday December 18, 2017 @05:53PM
(#15956229)
We don't literally use make, exactly as it was forty years ago.
> Here is a very beautiful, readable, portable makefile: https://github.com/git/git/blob/master/Makefile
That's a GNU Make Makefile. It's portable to installations where you have GNU Make ported already.
Re:Show HN: Cr – Runs your tasks at maximum concurrency
by Spivak on Monday December 18, 2017 @07:51PM
(#15956888)
Look, this battle has been lost for ages. People only seem to write portable Makefiles by accident and usually just target the implementation of make on the platform they're developing on.
Re:Show HN: Cr – Runs your tasks at maximum concurrency
by vorg on Wednesday December 20, 2017 @11:42AM
(#15971142)
Unfortunately, when you learn Gradle, you also have to learn its procedural description language, Apache Groovy, with its many quirks, such as when to use
something "abc"
and when to use something = "defg"
Why? Because make works. Because it's actually easy to understand if you've read the manual. It's simple. People try to make it do really complicated things, which you are better off putting in a script or another program. At it's core, make works and does its job very, very well.
Here is a very beautiful, readable, portable makefile: https://github.com/git/git/blob/master/Makefile
It's hard to write portable anything without details leaking out. Go is the best implementation I've ever seen here. It works identically everywhere I've tried it. The approach the Go team has taken is extreme. I think that says a lot.
Both these tools are very simple, and limit what you can do. When you try to go outside the box, you hurt yourself. Don't hurt yourself.
Tools like Gradle make it real easy to hurt yourself without realizing it.