I like dlang but i don't like dub

H. S. Teoh hsteoh at quickfur.ath.cx
Fri Mar 18 14:48:01 UTC 2022

On Fri, Mar 18, 2022 at 04:13:36AM +0000, Alain De Vos via Digitalmars-d-learn wrote:
> Dlang includes some good ideas.
> But dub pulls in so much stuff. Too much for me.
> I like things which are clean,lean,little,small.
> But when i use dub it links with so many libraries.
> Are they really needed ?

As a package manager, dub is OK, it does its job.

As a build system, I find dub simply isn't good enough for my use cases.
Its build model is far too simplistic, and does not integrate well with
external build systems (esp in projects involving multiple programming
languages).  I rather prefer SCons for my general build needs.

As far as dub pulling in too many libraries: IMNSHO this is a malaise of
modern software in general. (No) thanks to the code reuse mantra, nobody
seems satisfied until they refactor every common function into its own
package, and everything depends on everything else, so doing something
trivial like displaying a static webpage with vibe.d pulls in 25
packages just so it can be built.

I much rather prefer Adam's arsd libs[1], where you can literally just
copy the module into your own workspace (they are almost all standalone
single-file modules, except for a small number of exceptions) and just
build away. No hairy recursive dependencies to worry about, everything
you need is encapsulated in a single file.  That's the kind of
dependency philosophy I subscribe to.  The dependency graph of a project
should not be more than 2 levels deep (preferably just 1). You shouldn't
have to download half the world just to build a hello world program. And
you definitely shouldn't need to solve an NP-complete problem[2] just so
you can build your code.

[1] https://github.com/adamdruppe/arsd/
[2] https://research.swtch.com/version-sat - Dependency hell is


It is of the new things that men tire --- of fashions and proposals and improvements and change. It is the old things that startle and intoxicate. It is the old things that are young. -- G.K. Chesterton

More information about the Digitalmars-d-learn mailing list