On Monday, 9 May 2016 at 09:29:36 UTC, qznc wrote:
On Sunday, 8 May 2016 at 22:22:08 UTC, Peter Häggman wrote:
[...]
You've quoted the wrong part of the paragraph. The real
problem he encountered was not the doc, it was the phobos bugs
in the older version shipped with GDC/LDC:
"For GDC, which I used to compile my code due to LDC having
bugs at that time, this means that it is shipping with a very
outdated copy of Phobos"
The the doc thing is "just" a symptom. Older offline doc is
always available in the release archive, it's easy to
understand that so it's not the actual problem.
You are correct, but can this be solved? Newer Phobos versions
fix bugs. GDC needs a newer Phobos? Well, this is translated
into GDC needs more manpower. Everything does. Nothing new.
First of all, that blogpost generated way more buzz than I
expected - looks like D is highly interesting to people, which is
great news :-)
To elaborate a bit more on the version incompatibilities thing:
E.g. me as a new user reads about std.concurrency.Generator,
wants to use it, and it turns out that the standard library
doesn't contain it yet (in GDC). Same for std.experimental.logger.
Okay, means I can't use these.
Then, I wanted to use std.getopt - turns out the semantics have
changed and new stuff has been added there too, which I can't
use. Meh, if the docs would have at least told me that.
Then, I want to use D-YAML, which depends on std.stream. But
std.stream is completely deprecated, with no clear path for me to
see to replace it. That's really bad, and it also means I can't
compile my code with making the use of deprecated stuff fail the
compilation.
That was by far the most frustrating things I experienced in D.
So ideally the docs would be split for different Phobos versions,
that would already be a great help. Then, when deprecating stuff,
showing a thing that replaces it or the proper way to write code
using it would also be really nice.
E.g. wile I welcome the deprecation of std.net.curl in principle
(having to link against an external library in the standard lib
is odd), announcing to drop it before any replacement which
offers feature-parity is written is bad (sidenote: IMHO the
advanced net stuff shouldn't be in the standard library, because
it's harder to update in case of security updates and bad crypto).
It would actually be really awesome if Phobos wasn't tied to a
compiler, and all D compilers which are standard-compliant could
compile it. Then, one could assume that people have the most
recent Phobos. But it looks like it will take a longer time to
get there, if at all.
Another thing that I didn't mention in the blogpost, but which
might be interesting is that D - unlike Rust and Go - doesn't
have a way that lets developers do a shallow-dive into the
language by giving practical examples.
For example, Go has the really awesome Go Tour[1] which lets you
explore and learn the basic concepts of the language by example.
For me, going through the tour was enough to actually start
writing Go code, and while it certainly isn't complete, it is a
nice way to show off the language and give people a taste of how
it looks like. Rust has something similar with its tutorial[2].
For D, I haven't found an "in a nutshell" tutorial, and needed to
read a bit more documentation and employ my existing C/C++
knowledge in some cases.
Having something like the Go tour for D would IMHO be an wesome
way to attract people to try D.
Cheers,
Matthias
[1]: https://tour.golang.org/welcome/1
[2]: https://doc.rust-lang.org/book/guessing-game.html