News for hackers. Stuff that matters.
Re:Why Use Make by niggler on Sunday February 24, 2013 @03:45PM (#5275817)
"There are many, many way better alternatives to make"

Can you give an example with the ubiquity of make and better expressiveness?

Re:Why Use Make by mseebach on Sunday February 24, 2013 @03:52PM (#5275851)
No, probably not. But I think the metrics you've chosen are irrelevant. Make was not only the best, it was the only player in the game until quite recently, so of course it's ubiquitous. As for expressiveness, yes, it certainly is expressive. It's also very hard to learn and very difficult to maintain. But build systems such as Gradle or SBT, are also incredibly expressive, by virtue of being configurable in actual programming languages - with the added benefit of not having to learn a new language.
Re:Why Use Make by niggler on Sunday February 24, 2013 @04:09PM (#5275932)
"But I think the metrics you've chosen are irrelevant."

Nothing is more frustrating than discovering that you need to install a new component or build system just to build a specific component. It gets worse when dealing with multiple external components in different build systems.

"It's also very hard to learn and very difficult to maintain"

I agree insofar as most people go into make without trying to learn it properly. There's a manpage and pretty good documentation for the GNU extensions. But in my experience, with custom build setups using stuff like Maven, a lot of time is spent fighting the build system when a simple Makefile would suffice.

"with the added benefit of not having to learn a new language."

You've shifted the burden from "learning a new but very simple language" to "learning a framework atop your language", which (based on my reading of gradle's docs) is not very concise.

Re:Why Use Make by wtracy on Sunday February 24, 2013 @06:54PM (#5276530)
> Nothing is more frustrating than discovering that you need to install a new component or build system just to build a specific component.

If you're talking about a FOSS component that random people will have to rebuild: Yes, absolutely. (Go listen to the Linux From Scratch community complain about CMake!)

If you're talking about a proprietary project that will only be distributed as binaries, or maybe even not distributed externally at all, why not pick the best tool for the job?

Re:Why Use Make by imissmyjuno on Sunday February 24, 2013 @04:22PM (#5275969)
Indeed, mseebach's answer is really saying that those metrics are irrelevant to him.
Re:Why Use Make by mseebach on Sunday February 24, 2013 @05:12PM (#5276142)
No, what I'm really saying is that if you get to cherry-pick the metrics, you can win any debate.

Of course there are tradeoffs in anything, and if the expressiveness of your build script is the deal-breaker for your project, by all means use make. On the whole, I will still argue that more modern alternatives provide a better total experience. Also, note that the OP is directed at beginners.

Re:Why Use Make by Jare on Sunday February 24, 2013 @06:23PM (#5276420)
"Ubiquity" and "expressiveness" are hardly cherry picking in my book
Re:Why Use Make by elteto on Sunday February 24, 2013 @05:01PM (#5276099)
For OP's particular use case... bash? More expressive and a standard on pretty much all *nix systems.
Re:Why Use Make by lmm on Tuesday February 26, 2013 @03:33AM (#5284602)
Indeed. The metric is exactly wrong; you don't want a more expressive alternative to make, you want a less expressive alternative - one in which builds are more constrained, so that a newcomer to your project has a chance of figuring out what's actually going on.