​​
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.

​​
On 26 October 2016 at 15:42, <aaron@aaronboman.com> wrote:
This is similar to what
I have experimented in the b2 Python port with when using the
YAML/JSON/XML files to declare targets. The target declaration file, while
not as powerful, can cover about 90% of target creation. 

​I haven't seen b2's Python port, however this seems to me the obvious solution (and fine middleground).
XML to declare build targets (for the uncaring), python for the capable (expert) to ​apply logical for certain systems and approaches where sanctioned, and C++ for core-development.