On Wed, Oct 26, 2016 at 5:03 PM, PJB <darthpjb@gmail.com> wrote:
​​
On 26 October 2016 at 15:42, <aaron@aaronboman.com> wrote:
Most developers (here, at least) know nothing 
about build systems, nor do they care to learn. So, it's not that they don't
*need* logic in their declarations, it's that they *don't know they don't need* logic
in their declarations.

​Honestly, I can agree with this entirely, I've met my fair share of developers who think the entire world revolves around C# and the .Net framework - not even a clue how a build system goes, or why.
However, can we really argue that bubble-wrapping a system for the incompetent is a valid strategy if it​ diminishes the productivity of the competent?
I don't want to sound like some kind of intellectual fascist, but I just can't accept "dumbing down" a system because the la(z)yman doesn't care to learn it's proper use.

It's not a question of dumbing down, but that declarative builds "scale" much better than "procedural" ones.
It's a mistake IMHO to go with builds which are "written" in a full programming language like Python (or Ruby, or JS, etc...).

That's not to say extensions to said build system can't be in such languages, but in a "controlled" manner by adding new
custom rules/actions/whatever, which are then used declaratively as the core of the build is, and not turn the builds into spaghetti code.

As Aaron wrote, 80-90% of build can and should remain purely declarative.
And IMHO using JSON or YAML, or TOML are ill suited to a build specific DSL,
although I'd much prefer that, than the alternative of a build entirely in Python! --DD