On Friday, 9 November 2018 at 00:18:28 UTC, H. S. Teoh wrote:
It's not true that you're stuck with dub. And I'm not among
the people who think dub is the way to go (though it's true
that that's a minority opinion around here). Where I have a
choice, my own D projects do not use dub.
I have one project that uses dub because it's based on vibe.d,
but I mostly avoid needing to use dub by creating an empty dub
project in a subdirectory whose sole purpose is to declare a
dependency on vibe.d. Then I build that once with dub, and
outside in my real project I just link directly to the produced
artifacts. (The exact path(s) to the dub products can be
extracted from the output of `dub -v`. This can probably be
automated and translated into your build system of choice,
though I haven't quite gone that far yet.) Then I don't need
to use dub except when upgrading the dub-dependent library.
This is still a build system though. It might have advantages
over Dub, but I think the OP wants to avoid build systems
altogether. Someone coming from a scripting language wants to add
import foo;
to their program and not think about package foo further. There's
no obvious reason it can't be done that way in D, but the C/C++
foundation of this community leads to a mindset that it's wrong,
because you need to be able to set all kinds of configuration
options, guarantee reproducible builds, etc. All of which are of
no importance to someone using D as a scripting language.