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.


[1]: https://tour.golang.org/welcome/1
[2]: https://doc.rust-lang.org/book/guessing-game.html

Reply via email to