However, I question the utility of even doing this in the first
place. You miss out on the convenience of using the existing
command line interface. And for what? Just so everything can be
in D? Writing the same thing in Lua would be much prettier. I
don't understand this dependency-phobia.
It comes from knowing that for most small to average size D
projects you don't need a build _tool_ at all. If full clean
build takes 2 seconds, installing extra tool to achieve the same
thing one line shell script does is highly annoying.
Your reasoning about makefiles seems to be flavored by C++
realities. But my typical D makefile would look like something
this:
build:
dmd -ofbinary `find ./src`
test:
dmd -unittest -main `find ./src`
deploy: build test
scp ./binary server:
That means that I usually care neither about correctness nor
about speed, only about good cross-platform way to define
pipelines. And for that fetching dedicated tool is simply too
discouraging.
In my opinion that is why it is so hard to take over make place
for any new tool - they all put too much attention into
complicated projects but to get self-sustained network effect one
has to prioritize small and simple projects. And ease of
availability is most important there.