3 ms·
Reminds me of something I once read on Evan Martin's (creator of the Ninja build system) blog [1]. "Underspecifying and overspecifying. Ninja executes command
by aydwi 6y ago
Reminds me of something I once read on Evan Martin's (creator of the Ninja build system) blog [1].
"Underspecifying and overspecifying.
Ninja executes commands in parallel, so it requires the user to provide enough information to get that correct. But at the other extreme, it also doesn't mandate that it has a complete picture of the build. You can see one discussion of this dynamic in this bug in particular (search for "evmar" to see my comments). You must often compromise between correctness and convenience or performance and you should be intentional when you choose a point along that continuum. I find some programmers are inflexible when considering this dynamic, where it's somehow obvious that one of those concerns dominates, but in my experience the interplay is pretty subtle; for example, a tool that trades off correctness for convenience might overall produce a more correct ecosystem than a more correct but less convenient alternative, if programmers end up avoiding the latter. (That could be one reason Haskell isn't more successful. Now that I work in programming languages I see this dynamic play out regularly.)"
[1] http://neugierig.org/software/blog/2020/05/ninja.html http://neugierig.org/software/blog/2020/05/ninja.html