DUB - call to arms
Russel Winder
russel at winder.org.uk
Mon Apr 15 07:27:54 UTC 2019
On Sun, 2019-04-14 at 13:40 +0000, Adam D. Ruppe via Digitalmars-d
wrote:
>
[…]
> No and no. Dub delivers negative value for my use-case; it is a
> cost to me to maintain these definition files for other people
> (and it is a support pain too, which people dropping in having
> dub problems that don't exist in the underlying compiler), even
> though I don't use it.
So that is fine, you do not use it. But for those who have experience
Cargo with Rust, Go, Conan with C++, etc. D needs something like Dub.
> I don't use it because it offers nothing of value to me; it
> solves a problem I don't even have (and does so in a way that is
> mostly incompatible with my existing code). It is all negative
> with nothing in the positive column to balance it out.
See above. :-)
>
> I'd say we split dub up into three concerns:
>
> 1) code.dlang.org. I do see some value in this, and think it is
> salvageable in its current form.
>
> 2) dub, the package manager. Maybe useful, though I don't
> personally believe in dependencies, I can see some value, though
> I'd want to change it so it has more compatibility with other
> workflows (like mine) and be sure to limit its scope to developer
> use-cases; end users should never know.
>
> 3) dub, the build tool. I'd rather have it either do absolutely
> nothing here, or just delegate to something else.
I disagree. The lessons, particularly from Cargo/Rust, and Go is that
"small language, small standard library, large pool of trivially
accessible dependencies" is the way things are going just now. Having a
dependency and build manager is what Maven and (far better) Gradle have
been doing for yonks in the JVM-based milieu, this way of working is
finally penetrating into the native code arena.
Make, CMake, SCons, Meson, etc. remain tied to the "I have all the
source I need locally, everything else is provided via precompiled
static or dynamic libraries that are present locally". If this works
for a given use case fine. But increasingly the JVM world, Cargo/Rust,
Go are working with a distributed source code approach. An approach
that can use a central publishing place, local file locations, or
Git/Mercurial/Breezy repositories.
Having worked with Gradle, Cargo, and Go, returning to the approach of
Make, CMake, SCons, and Meson really has no appeal to me at all.
A consequence of this for me is that for D almost all of Phobos should
not be in Phobos but should be in the Dub repository as packages, and
Dub should work with Git/Mercurial/Breezy repositories as easily as it
does with the Dub repostory and local filestores.
--
Russel.
===========================================
Dr Russel Winder t: +44 20 7585 2200
41 Buckmaster Road m: +44 7770 465 077
London SW11 1EN, UK w: www.russel.org.uk
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20190415/7c5b99fd/attachment.sig>
More information about the Digitalmars-d
mailing list