Thread overview
Andrei's "The D Programming Language" book. Up to date?
Oct 05
Dukc
Oct 05
Seb
October 04
Hi all,

This is my first message to this forum. And what a pleasure it is to be here. :)

I was just looking around at what D books are available. I see that Andrei's "The D Programming Language" was published in 2010. What's changed in the language, library, and community since then that I should be aware of if following along with and learning from that book?

Incidentally, is a new edition is on its way any time soon?

Thanks!

October 04
Andrei's book contains some outdated and some not-yet-implemented things but it's still a great read. It explains core features and design decisions of D very well.

Ali

October 05
On Wednesday, 4 October 2017 at 20:49:26 UTC, John Gabriele wrote:
> Hi all,
>
> This is my first message to this forum. And what a pleasure it is to be here. :)
>
> I was just looking around at what D books are available. I see that Andrei's "The D Programming Language" was published in 2010. What's changed in the language, library, and community since then that I should be aware of if following along with and learning from that book?
>
> Incidentally, is a new edition is on its way any time soon?
>
> Thanks!

The core language hasn't changed that much (yet some). Most of the differences from times back then are because we now have much more third-party libraries, and the implementation is much more stable. Or that's what I've heard anyway.

And I think that the book is ahead of it's time, advertising features that probably only barely worked and were seldom used back then. Just what Modern c++ is known for too. That makes it feel easily three years younger than it really is. I wasn't here myself trough so I don't know for sure.
October 05
On Wednesday, 4 October 2017 at 20:49:26 UTC, John Gabriele wrote:
> Hi all,
>
> This is my first message to this forum. And what a pleasure it is to be here. :)
>
> I was just looking around at what D books are available. I see that Andrei's "The D Programming Language" was published in 2010. What's changed in the language, library, and community since then that I should be aware of if following along with and learning from that book?
>
> Incidentally, is a new edition is on its way any time soon?
>
> Thanks!

I can only recommend his book. You get a "second-hand" insight into all decisions of D2 and Andrei's writing style is very vivid, so one can barely stop reading the book.

In case you are interested on the list of things that have changed, there's http://erdani.com/tdpl/errata (it's mostly just typos though).
November 29
On Wednesday, 4 October 2017 at 20:49:26 UTC, John Gabriele wrote:
> What's changed in the language, library, and community since then that I should be aware of if following along with and learning from that book?

Here's a list of significant things - maybe incomplete:
https://wiki.dlang.org/Differences_With_TDPL
November 29
On Wednesday, 29 November 2017 at 17:26:11 UTC, Nick Treleaven wrote:
> Here's a list of significant things - maybe incomplete:
> https://wiki.dlang.org/Differences_With_TDPL

> Multiple alias this
> You can only have one subtyping member currently.

> Shared
> Not all of shared's guarantees are implemented yet.

> SafeD
> @safe (and therefore SafeD) isn't fully implemented. So, it doesn't necessarily work quite like it's supposed to yet.

How much of these are relevant today with 2.077.0?
November 29
On Wednesday, 29 November 2017 at 17:50:59 UTC, Arun Chandrasekaran wrote:
>> Multiple alias this
>> You can only have one subtyping member currently.
>
>> Shared
>> Not all of shared's guarantees are implemented yet.
>
>> SafeD
>> @safe (and therefore SafeD) isn't fully implemented. So, it doesn't necessarily work quite like it's supposed to yet.
>
> How much of these are relevant today with 2.077.0?

The first two are true AIUI. @safe is mostly implemented, there's been a lot of progress on that since TDPL.
November 29
On Wednesday, 29 November 2017 at 17:26:11 UTC, Nick Treleaven wrote:
> On Wednesday, 4 October 2017 at 20:49:26 UTC, John Gabriele wrote:
>> What's changed in the language, library, and community since then that I should be aware of if following along with and learning from that book?
>
> Here's a list of significant things - maybe incomplete:
> https://wiki.dlang.org/Differences_With_TDPL

Nice! Thanks, Nick!

November 29
On Wednesday, November 29, 2017 17:26:11 Nick Treleaven via Digitalmars-d- learn wrote:
> On Wednesday, 4 October 2017 at 20:49:26 UTC, John Gabriele wrote:
> > What's changed in the language, library, and community since then that I should be aware of if following along with and learning from that book?
>
> Here's a list of significant things - maybe incomplete: https://wiki.dlang.org/Differences_With_TDPL

I didn't even realize that that page existed. I just made some tweaks to it, though it's still probably far from complete as far as stuff not mentioned in TDPL goes. As for unimplemented stuff, it made it sound like shared isn't implemented (which isn't true at all; it just doesn't have memory barriers like TDPL talks about; the big thing missing for shared is arguably that the memory model for D needs to be properly defined like C++ finally did, but TDPL doesn't talk about that at all), and the wiki page didn't list synchronized classes, which is the other big one that isn't implemented (though putting synchronized on classes actually has _some_ effect now, which it didn't until fairly recently).

- Jonathan M Davis