www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - D Programming Language book - outdated, list of changes since?

reply Guido Kollerie <guido kollerie.com> writes:
Hi,

Wanting to learn another modern statically typed language I decided upon =

learning D and have ordered Andrei Alexandrescu's book 'The D=20
Programming Language'. Watching Walter Bright's DConf 2013's keynote=20
last night, someone mentioned it was already out of date.

I was wondering is there is a list of things that have changed since the =

book was printed? Something along the lines of "The book says x,=20
nowadays its better to do y" type of document?

--=20
Guido Kollerie
Oct 23 2013
next sibling parent reply "simendsjo" <simendsjo gmail.com> writes:
On Wednesday, 23 October 2013 at 07:41:54 UTC, Guido Kollerie 
wrote:
 Hi,

 Wanting to learn another modern statically typed language I 
 decided upon
 learning D and have ordered Andrei Alexandrescu's book 'The D
 Programming Language'. Watching Walter Bright's DConf 2013's 
 keynote
 last night, someone mentioned it was already out of date.

 I was wondering is there is a list of things that have changed 
 since the
 book was printed? Something along the lines of "The book says x,
 nowadays its better to do y" type of document?
http://erdani.com/tdpl/errata/
Oct 23 2013
parent reply Guido Kollerie <guido kollerie.com> writes:
On 23/10/13 09:43 , simendsjo wrote:
 On Wednesday, 23 October 2013 at 07:41:54 UTC, Guido Kollerie wrote:
 I was wondering is there is a list of things that have changed since t=
he
 book was printed? Something along the lines of "The book says x,
 nowadays its better to do y" type of document?
http://erdani.com/tdpl/errata/
Thanks for the link to the errata. Very welcome. Though what I was looking for specifically is a document that lists=20 syntax, techniques, best practices that the books describes but that=20 have been superseded but newer syntax, techniques and/or best practices. --=20 Guido Kollerie
Oct 23 2013
parent "simendsjo" <simendsjo gmail.com> writes:
On Wednesday, 23 October 2013 at 11:17:08 UTC, Guido Kollerie 
wrote:
 On 23/10/13 09:43 , simendsjo wrote:
 On Wednesday, 23 October 2013 at 07:41:54 UTC, Guido Kollerie 
 wrote:
 I was wondering is there is a list of things that have 
 changed since the
 book was printed? Something along the lines of "The book says 
 x,
 nowadays its better to do y" type of document?
http://erdani.com/tdpl/errata/
Thanks for the link to the errata. Very welcome. Though what I was looking for specifically is a document that lists syntax, techniques, best practices that the books describes but that have been superseded but newer syntax, techniques and/or best practices.
Ah, my bad. I don't know of any unfortunately. Perhaps Alis book (although it's meant for beginning programmers) http://ddili.org/ders/d.en/index.html Rosettacode might have some examples. Bearophile has been trying to code them using idiomatic D I think. http://rosettacode.org/wiki/Category:D And the wiki might have some info. http://wiki.dlang.org/The_D_Programming_Language
Oct 23 2013
prev sibling next sibling parent reply "Meta" <jared771 gmail.com> writes:
On Wednesday, 23 October 2013 at 07:41:54 UTC, Guido Kollerie 
wrote:
 Hi,

 Wanting to learn another modern statically typed language I 
 decided upon
 learning D and have ordered Andrei Alexandrescu's book 'The D
 Programming Language'. Watching Walter Bright's DConf 2013's 
 keynote
 last night, someone mentioned it was already out of date.

 I was wondering is there is a list of things that have changed 
 since the
 book was printed? Something along the lines of "The book says x,
 nowadays its better to do y" type of document?
I don't believe there's any official list. A few things I can think of off the top of my head are: shared isn't implemented, scope is only partially implemented for delegates, multiple alias this is not implemented.
Oct 23 2013
parent reply "simendsjo" <simendsjo gmail.com> writes:
On Wednesday, 23 October 2013 at 11:47:47 UTC, Meta wrote:
 On Wednesday, 23 October 2013 at 07:41:54 UTC, Guido Kollerie 
 wrote:
 Hi,

 Wanting to learn another modern statically typed language I 
 decided upon
 learning D and have ordered Andrei Alexandrescu's book 'The D
 Programming Language'. Watching Walter Bright's DConf 2013's 
 keynote
 last night, someone mentioned it was already out of date.

 I was wondering is there is a list of things that have changed 
 since the
 book was printed? Something along the lines of "The book says 
 x,
 nowadays its better to do y" type of document?
I don't believe there's any official list. A few things I can think of off the top of my head are: shared isn't implemented, scope is only partially implemented for delegates, multiple alias this is not implemented.
The book was written before UDAs, so that's new. And before UFCS..?
Oct 23 2013
parent reply "Dicebot" <public dicebot.lv> writes:
On Wednesday, 23 October 2013 at 11:51:22 UTC, simendsjo wrote:
 And before UFCS..?
AFAIR it mentions only partial UFCS, for built-in stuff
Oct 23 2013
parent reply "Brad Anderson" <eco gnuk.net> writes:
On Wednesday, 23 October 2013 at 11:59:19 UTC, Dicebot wrote:
 On Wednesday, 23 October 2013 at 11:51:22 UTC, simendsjo wrote:
 And before UFCS..?
AFAIR it mentions only partial UFCS, for built-in stuff
It calls them "pseudo members"* and only spends a couple paragraphs on them. It talks about them in the context of needing to add members to built-in types (an array example is given) but doesn't say they only work for built-in types. It's surprisingly little coverage for a feature that has become highly used since it was finally fully implemented not long ago. * I actually like the name "pseudo members" much better than UFCS. (Uniform/Unified/Universal) Function Call Syntax doesn't really tell you anything about what is going on and the fact that it's almost always referred to by initialism just obfuscates what it is further and lead to the state we are in where people keep using different words for the 'U'.
Oct 23 2013
parent reply "Kapps" <opantm2+spam gmail.com> writes:
On Wednesday, 23 October 2013 at 17:38:28 UTC, Brad Anderson 
wrote:
 On Wednesday, 23 October 2013 at 11:59:19 UTC, Dicebot wrote:
 On Wednesday, 23 October 2013 at 11:51:22 UTC, simendsjo wrote:
 And before UFCS..?
AFAIR it mentions only partial UFCS, for built-in stuff
It calls them "pseudo members"* and only spends a couple paragraphs on them. It talks about them in the context of needing to add members to built-in types (an array example is given) but doesn't say they only work for built-in types. It's surprisingly little coverage for a feature that has become highly used since it was finally fully implemented not long ago. * I actually like the name "pseudo members" much better than UFCS. (Uniform/Unified/Universal) Function Call Syntax doesn't really tell you anything about what is going on and the fact that it's almost always referred to by initialism just obfuscates what it is further and lead to the state we are in where people keep using different words for the 'U'.
At the time the book was made, it did only work on arrays which probably explains the minimal coverage and array example.
Oct 23 2013
next sibling parent Russel Winder <russel winder.org.uk> writes:
On Wed, 2013-10-23 at 20:48 +0200, Kapps wrote:
[…]
 At the time the book was made, it did only work on arrays which 
 probably explains the minimal coverage and array example.
Which strongly suggests a 2nd edition is in order. -- Russel. ============================================================================= Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.winder ekiga.net 41 Buckmaster Road m: +44 7770 465 077 xmpp: russel winder.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
Oct 24 2013
prev sibling parent "Jonathan M Davis" <jmdavisProg gmx.com> writes:
On Thursday, October 24, 2013 15:40:28 Russel Winder wrote:
 On Wed, 2013-10-23 at 20:48 +0200, Kapps wrote:
 […]
 
 At the time the book was made, it did only work on arrays which
 probably explains the minimal coverage and array example.
Which strongly suggests a 2nd edition is in order.
Because of one feature? That seems like overkill. I'm sure that there will be another edition eventually, but Andrei has made it clear that he doesn't think that one is currently necessary and that it'll be awhile before we get another. At most, I'd expect a second printing which fixed the various errata, and AFAIK, not even something that is in the works as of yet. - Jonathan M Davis
Oct 24 2013
prev sibling next sibling parent reply "Suliman" <bubnenkoff gmail.com> writes:
It would be great to have updated TDPL book...
Oct 23 2013
next sibling parent "Dicebot" <public dicebot.lv> writes:
On Wednesday, 23 October 2013 at 12:39:22 UTC, Suliman wrote:
 It would be great to have updated TDPL book...
I think it is tiny bit too early. Probably a good time can be somewhere after next DConf, after fate of some controversial features/issues is determined and set in stone.
Oct 23 2013
prev sibling next sibling parent reply "Jonathan M Davis" <jmdavisProg gmx.com> writes:
On Wednesday, October 23, 2013 14:39:21 Suliman wrote:
 It would be great to have updated TDPL book...
I don't understand why people keep saying that. Is it because people keep repeating that incorrect assumption that it's out-of-date? Or is it just that too many people have the impression that D has changed drastically since TDPL was released? Almost nothing in TDPL is out-of-date, and for the most part, the stuff that is out-of-date is out-of-date because it has never been implemented and not because something has changed. http://forum.dlang.org/post/mailman.1762.1373097795.13711.digitalmars-d puremagic.com If some of the stuff that's been discussed in the newsgroup gets implemented (e.g. getting rid of toString, opEquals, toHash, and opCmp from Object), then TDPL will over time become more out-of-date and more incorrect, but at this point, the main problem is the errata. I could see someone wanting a new addition that described features that have been added since then (e.g. UDAs), but that list is quite short. If anything, the problem with TDPL is that some of what it describes still hasn't been implemented yet, and that list is also quite short. It explicitly avoided discussing things that weren't considered a sure thing at the time, so it's largely still correct and relevant. I really think that it's far too early for a new edition of TDPL. If we need more of anything, it's more online tutorials and articles on D, not a new edition of TDPL. - Jonathan M Davis
Oct 24 2013
parent reply "Daniel Davidson" <nospam spam.com> writes:
On Thursday, 24 October 2013 at 18:14:42 UTC, Jonathan M Davis 
wrote:
 On Wednesday, October 23, 2013 14:39:21 Suliman wrote:
 It would be great to have updated TDPL book...
I don't understand why people keep saying that. Is it because people keep repeating that incorrect assumption that it's out-of-date? Or is it just that too many people have the impression that D has changed drastically since TDPL was released? Almost nothing in TDPL is out-of-date, and for the most part, the stuff that is out-of-date is out-of-date because it has never been implemented and not because something has changed.
I think your typical user (not one who works on D or phobos itself) runs into difficulties that take skill, understanding and sometimes knowledge of D history to work around and feel comfortable. The whole transitive mutability was a huge time sync for me and I would have liked more guidance. For instance, TDPL covers it, but it does not take you into the pitfalls of using it or the right/wrong way to scale with it. It does not detail the issues with associative arrays, for example. It does a great "this is how it works and here are the promised benefits" - but issues come up that make it feel harder to use. I love D, but so far I have to say it is a language that can make you feel stupid. With C++ there is less of that because the expectations are it is difficult and a PITA.
 http://forum.dlang.org/post/mailman.1762.1373097795.13711.digitalmars-d puremagic.com

 If some of the stuff that's been discussed in the newsgroup 
 gets implemented
 (e.g. getting rid of toString, opEquals, toHash, and opCmp from 
 Object), then
 TDPL will over time become more out-of-date and more incorrect, 
 but at this
 point, the main problem is the errata. I could see someone 
 wanting a new
 addition that described features that have been added since 
 then (e.g. UDAs),
 but that list is quite short. If anything, the problem with 
 TDPL is that some
 of what it describes still hasn't been implemented yet, and 
 that list is also
 quite short. It explicitly avoided discussing things that 
 weren't considered a
 sure thing at the time, so it's largely still correct and 
 relevant.
You may be right. Maybe TDPL is not lacking for falling behind the language too much. It is also great at teaching C.S. concepts beyond the D language in general. But if you really want to know how to successfully use D, which is what people want from TDPL, it needs more. Either a second edition, or a different more advanced book, a cookbook, an effective ways book.
 I really think that it's far too early for a new edition of 
 TDPL. If we need
 more of anything, it's more online tutorials and articles on D, 
 not a new
 edition of TDPL.

 - Jonathan M Davis
I wish you would write a book :-) Thanks Dan
Oct 25 2013
parent "Jonathan M Davis" <jmdavisProg gmx.com> writes:
On Friday, October 25, 2013 15:17:52 Daniel Davidson wrote:
 I wish you would write a book :-)
I actually intend to and have started on it, but I'm far, far too busy right now to do much with D beyond respond to posts on the newsgroup while waiting for builds and whatnot. I hope to get back to doing a lot of D stuff by the end of the year, but my life is just too hectic right now. - Jonathan M Davis
Oct 25 2013
prev sibling parent reply Guido Kollerie <guido kollerie.com> writes:
On 24-10-2013 20:14, Jonathan M Davis wrote:

 If anything, the problem with TDPL is that some of what it describes
 still hasn't been implemented yet, and that list is also quite
 short.
This thread has already proved very valuable. Thank you all! So far I've = learned: - where the errata lives - what UFCS is - what UDA is - that the book is not really out-of-date This short list of things described in TDPL though not yet implemented.=20 Is that documented somewhere? If not please do mention those things in=20 this thread similarly to how UFCS and UDA were mentioned. That will help = me and other newcomers to D keep the things in perspective with regards=20 to the status quo. --=20 Guido Kollerie
Oct 24 2013
parent =?UTF-8?B?QWxpIMOHZWhyZWxp?= <acehreli yahoo.com> writes:
On 10/24/2013 01:26 PM, Guido Kollerie wrote:
 On 24-10-2013 20:14, Jonathan M Davis wrote:

 If anything, the problem with TDPL is that some of what it describes
 still hasn't been implemented yet, and that list is also quite
 short.
This thread has already proved very valuable. Thank you all! So far I've learned: - where the errata lives - what UFCS is - what UDA is - that the book is not really out-of-date This short list of things described in TDPL though not yet implemented. Is that documented somewhere? If not please do mention those things in this thread similarly to how UFCS and UDA were mentioned. That will help me and other newcomers to D keep the things in perspective with regards to the status quo.
Some of the bugs have TDPL sometimes in the summary: http://d.puremagic.com/issues/buglist.cgi?quicksearch=TDPL Ali
Oct 24 2013
prev sibling next sibling parent "Jonathan M Davis" <jmdavisProg gmx.com> writes:
On Thursday, October 24, 2013 22:26:01 Guido Kollerie wrote:
 This short list of things described in TDPL though not yet implemented.
 Is that documented somewhere? If not please do mention those things in
 this thread similarly to how UFCS and UDA were mentioned. That will help
 me and other newcomers to D keep the things in perspective with regards
 to the status quo.
That's why I gave a link to a previous post that talked about it: http://forum.dlang.org/post/mailman.1762.1373097795.13711.digitalmars-d puremagic.com We should probably have a wiki page on the topic, but no one has taken the time to do it. - Jonathan M Davis
Oct 24 2013
prev sibling parent Guido Kollerie <guido kollerie.com> writes:
On 24-10-2013 23:44, Jonathan M Davis wrote:

 That's why I gave a link to a previous post that talked about it:

 http://forum.dlang.org/post/mailman.1762.1373097795.13711.digitalmars-d=
puremagic.com Can't believe I missed that one. I'm sorry. Thank you. --=20 Guido Kollerie
Oct 25 2013