News for hackers. Stuff that matters.
Re:Ask HN: Whats a Build vs. Buy decision that you got wrong? by Simran-B on Wednesday December 28, 2022 @04:29PM (#34166234)
With some tweaks to your second paragraph, the description fits CMake:

In reality you just end up [with] a shitty, nerfed version of a programming language, that [...] users can't understand, because you still have to understand [CMake's] logic to [utilize its magic behavior], oh and [the] documentation is terrible because devs don't bother with the boring stuff. Most of the time [you] end up implementing [workarounds] anyway because [CMake doesn't] actually work properly.

Re:Ask HN: Whats a Build vs. Buy decision that you got wrong? by funnymony on Wednesday December 28, 2022 @05:43PM (#34167030)
It will work that way with anything :)

Especially gradle.

Re:Ask HN: Whats a Build vs. Buy decision that you got wrong? by Too on Thursday December 29, 2022 @05:41AM (#34171346)
While Cmake has a large share of idiosyncrasies, a build system is much more graph oriented and must therefor at some point have a way to declare such dependencies, often using a DSL, for concurrency and incrementals to be reliable. Lets not forget IDEs that need to understand the project structure as well.

Workflows on the other hand are more conditional and imperative, mapping better to normal programming languages, with the exceptions of transient error handling, long timers and distributing workload. Here, writing a custom DSL would be a much bigger mismatch.

Best for build configuration would be a hybrid, where the declaration of dependencies is done with normal programming language, which at the end calls a build(dep_tree)-function where all the magic happens. With the risk of developers abusing this setup-step and run half the build in their own reinvented imperative flow here instead. This is what Scons tries to be, it seems however not to be very popular compared to cmake.

Re:Ask HN: Whats a Build vs. Buy decision that you got wrong? by Simran-B on Friday December 30, 2022 @07:28PM (#34191860)
Isn't Scons abandon-ware? I remember it being part of the build setup at work at some point and it caused quite a bit of frustrations because it broke every now and then. I believe it was mainly failing on Windows.

Conan's recent development is promising and it gives you the full power of Python. It can also be used declaratively but with limitations. If I remember correctly, there are discussions in the C++ world about a declarative exchange format for dependencies and build information, but it's in the early stages. It's not trivial because there are also C++ modules now.