The Joys Of Data-Driven Programming

Cem Karan cfkaran2 at gmail.com
Wed Aug 31 08:49:27 EDT 2016


On Aug 31, 2016, at 8:21 AM, Paul  Moore <p.f.moore at gmail.com> wrote:

> On Sunday, 21 August 2016 15:20:39 UTC+1, Marko Rauhamaa  wrote:
>>> Aren’t makefiles data-driven?
>> 
>> Yes, "make" should be added to my sin list.
>> 
>>> [Personally Ive always believed that jam is better than make and is
>>> less used for entirely historical reasons; something like half the
>>> world eoling with crlf and half with lf. But maybe make is really a
>>> better design because more imperative?]
>> 
>> Don't know jam, but can heartily recommend SCons.
> 
> The data driven side of make is the target: sources part. But (particularly as a Python programmer, where build dependencies are less of an issue) a huge part of make usage is in my experience, simply name: actions pairs (which is the less data driven aspect), maybe with an element of "always do X before Y".
> 
> I've generally found "make successors" like SCons and waf to be less useful, precisely because they focus on the dependency graph (the data driven side) and less on the trigger-action aspect.
> 
> Has anyone else found this to be the case? Is there any "make replacement" out there that focuses more on named sets of actions (maybe with prerequisite/successor type interdependencies), and less on building file dependency graphs?

Maybe Ninja (https://ninja-build.org/)?  I personally like it because of how simple it is, and the fact that it doesn't use leading tabs the way that make does.  It is intended to be the assembler for higher-level build systems which are more like compilers.  I personally use it as a make replacement because it does what I tell it to do, and nothing else.  It may fit what you're after.

Thanks,
Cem Karan


More information about the Python-list mailing list