On Wednesday, 23 January 2019 at 14:14:06 UTC, bachmeier wrote:
I've made this comparison many times before, but I'll do it
again...
Look at what Rust offers as documentation for Cargo:
https://doc.rust-lang.org/cargo/index.html
This is what you get with Dub:
https://dub.pm/getting_started
One is professional documentation, the other was something
hacked together by a sixth grader over the weekend. The Dub
documentation is good through the part demonstrating `dub
init`, then it falls apart. It talks about two configuration
file formats - not one, but two ("use whichever you prefer")
and I have no idea there is even a discussion of configuration
file formats at that point. Then there's a link to this word
dump https://dub.pm/package-format-json.html.
Noticeably absent: how I'm supposed to *use* Dub. Where do I
put my source files? How do I add dependencies? Have you ever
heard of an example?
Then a little below that is a link to this page:
https://dub.pm/publish.html. I wonder what that is for. Can't
make heads or tails out of that.
This is *introduction to the language*. If someone sees that
and doesn't run away, there's something wrong. I most
definitely would have gone with Rust if it had been usable when
I started using D. The Dub documentation makes it really hard
to bring in users - and makes Rust look like a sane language in
comparison.
This is all true, but you need to keep in mind that Go had no
real package manager for a long time. There was the "go get"
command which loaded the code from some github repo in the state
it was at the time when being loaded. There was no version
control. Nobody really cared (the vendor stuff in Go was added
with Go 1.10 or 1.11). Goroutines were the killer feature of the
language that paved the way, because this was badly needed for
writing server-side software.
I don't think D will have some killer app in the mid-term future.
So what is left is to put a killer feature into the language like
CSP or safe manual memory management or something.