Adventures in D Programming

Daniel Kozak via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Thu May 12 15:54:44 PDT 2016


Dne 12.5.2016 v 23:08 Matthias Klumpp via Digitalmars-d-announce napsal(a):

> 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.

This is something I do not like. It would be awesome if I could use new 
version of phobos (dub package for eg.) in a dmd, ldc or gdc. Having 
language which is so unstable so is almost impossible to use standard 
library with older frontend is really anoying.

> 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.

I knew it :). I end up with same problem with std.getopt. It was a 
reason for this post: 
http://forum.dlang.org/post/srhttrxrqawhspibdlrj@forum.dlang.org

std.getopt has been backward compatible but it was not forward 
compatible. So because there is only latest docs available you are 
doomed :(.
>
> 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.

I am not sure what exactly this deprecation message say, but you 
definitely should not used std.stream at all in a first place ;-).

> 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. 

Yes this would help a lot.
> 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.

I hope it would not take so much time. This is really important if D 
want to succeed.

> 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.
There is already http://tour.dlang.io, but I do not have yet time to try 
it so I can't speak about maturity and so on. Other problem is with 
complexity of D. I believe even I can write book about D, which make 
people able to write almost anything in D. But they will not be able to 
read all D code. Go is OTOH really easy language so you need book with 
around 200 pages to explain everything. But with D I am not sure that 
even 1000 of pages would be enough :(.
>
> Cheers,
>     Matthias
>
>
> [1]: https://tour.golang.org/welcome/1
> [2]: https://doc.rust-lang.org/book/guessing-game.html



More information about the Digitalmars-d-announce mailing list