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.

Reply via email to