www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Andrei's "The D Programming Language" book. Up to date?

reply John Gabriele <jgabriele fastmail.fm> writes:
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!
Oct 04
next sibling parent =?UTF-8?Q?Ali_=c3=87ehreli?= <acehreli yahoo.com> writes:
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
Oct 04
prev sibling next sibling parent Dukc <ajieskola gmail.com> writes:
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.
Oct 05
prev sibling next sibling parent Seb <seb wilzba.ch> writes:
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).
Oct 05
prev sibling parent reply Nick Treleaven <nick geany.org> writes:
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
Nov 29
next sibling parent reply Arun Chandrasekaran <aruncxy gmail.com> writes:
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?
Nov 29
parent Nick Treleaven <nick geany.org> writes:
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.
Nov 29
prev sibling next sibling parent John Gabriele <jgabriele fastmail.fm> writes:
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!
Nov 29
prev sibling parent Jonathan M Davis <newsgroup.d jmdavisprog.com> writes:
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
Nov 29