- Paperback: 460 pages
- Publisher: Addison-Wesley Professional; 1 edition (June 12, 2010)
- Language: English
- ISBN-10: 0321635361
- ISBN-13: 978-0321635365
- Product Dimensions: 6.8 x 1.2 x 8.9 inches
- Shipping Weight: 1.7 pounds (View shipping rates and policies)
- Average Customer Review: 62 customer reviews
- Amazon Best Sellers Rank: #414,110 in Books (See Top 100 in Books)
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
The D Programming Language 1st Edition
Use the Amazon App to scan ISBNs and compare prices.
Fulfillment by Amazon (FBA) is a service we offer sellers that lets them store their products in Amazon's fulfillment centers, and we directly pack, ship, and provide customer service for these products. Something we hope you'll especially enjoy: FBA items qualify for FREE Shipping and Amazon Prime.
If you're a seller, Fulfillment by Amazon can help you increase your sales. We invite you to learn more about Fulfillment by Amazon .
Frequently bought together
Customers who bought this item also bought
Customers who viewed this item also viewed
From the Back Cover
"To the best of my knowledge, D offers an unprecedentedly adroit integration of several powerful programming paradigms: imperative, object-oriented, functional, and meta."
-From the Foreword by Walter Bright
"This is a book by a skilled author describing an interesting programming language. I'm sure you'll find the read rewarding."
-From the Foreword by Scott Meyers D is a programming language built to help programmers address the challenges of modern software development. It does so by fostering modules interconnected through precise interfaces, a federation of tightly integrated programming paradigms, language-enforced thread isolation, modular type safety, an efficient memory model, and more. "The D Programming Language "is an authoritative and comprehensive introduction to D. Reflecting the author's signature style, the writing is casual and conversational, but never at the expense of focus and preAcision. It covers all aspects of the language (such as expressions, statements, types, functions, contracts, and modules), but it is much more than an enumeration of features. Inside the book you will find In-depth explanations, with idiomatic examples, for all language featuresHow feature groups support major programming paradigmsRationale and best-use advice for each major featureDiscussion of cross-cutting issues, such as error handling, contract programming, and concurrencyTables, figures, and "cheat sheets" that serve as a handy quick reference for day-to-day problem solving with D Written for the working programmer, "The D Programming Language "not only introduces the D language-it presents a compendium of good practices and idioms to help both your coding with D and your coding in general.
About the Author
Andrei Alexandrescu, Ph.D., is the author of the award-winning books Modern C++ Design (Addison-Wesley, 2001) and, with Herb Sutter, C++ Coding Standards (Addison-Wesley, 2005). Through his work, Andrei has garnered a solid reputation as a leading innovator in programming languages and methods. Since 2006, he has collaborated closely with Walter Bright—the original designer and implementer of D—on designing and implementing the language and its standard library.
Top customer reviews
There was a problem filtering reviews right now. Please try again later.
One of the best introductory books for a language that I have read is Core Java(TM) 2, Volume I--Fundamentals (7th Edition) by Cay Horstmann and Gary Cornell (see my review). There were four things that made that a great book that I was looking for in The D Programming Language, and I discuss each below.
1. Speaks to a diverse audience - Core Java was great at calling out sections with "watch outs" for C/C++ programmers. While The D Programming Language does this, I don't think the organization is as good. The little touch of having a header with a special font to call attention to the subtle differences is very helpful.
2. Good code examples - Core Java had fairly extensive examples, and readers could download the code. This is a great service to readers because the code compiled (for the most part) with no errors. I used the examples as a starting point to explore features and modify them the listings to see different behaviors and scenarios. The examples in The D Programming Language are sparse and not available for download.
3. Comprehensive reference - It is difficult to have a learning book also serve as a great reference too. I think this is the one area where The D Programming Language excels. It hits all of the various features of D, and the meaty chapters have reference summaries at the end that will be of great values to programmers who are learning the language and trying to use it in their programs.
4. Style and structure - I like Alexandrescu's writing style in general, but I didn't care for the structure of the book at the beginning. The first chapter contains a number of code snippets that readers are frankly not ready for. I prefer books that start out with a more qualitative approach and build on the syntax and structure afterward. It wasn't until Chapter 3 that the material more or less stood on its own without deferring explanation to later chapters. I would encourage readers to stick with it through Chapters 1 and 2 because it does get better.
Overall, I think that The D Programming Language serves better as a reference than a learning book/reference combo. Unfortunately there isn't a lot to choose from for this up and coming language. While it gets the job done, it could have been a lot better.
When a code example is given, it shows up as inline text, with a hyperlink above that says "Click here to view code image". At first, I was having trouble understanding the code in the inline text - it had gaps in it, as if extra spaces were inserted. For instance, here's one example from section 4.1.7:
double a, b, c;
a = ( b (c 4)) c d;
The last line doesn't make any sense.
What I realized is that none of the punctuation symbols that represent operators were being displayed! The last line should show as:
a = -( b * (c + 4)) + c * d;
It shows correctly if I click on the "Click here to view code image" link, and it also has the correct characters if you copy the line and, for example, paste it into Notepad. So the problem is clearly not that the characters are missing, it's that they are not being displayed for some reason.
This is not isolated to one place, it happens in pretty much every code example that has any operator characters in it.
So if you are trying to understand a code example, the "Click here to view code image" link might be your friend :-)
thorough and well written description of this relatively new,
well-designed and powerful software development paradigm.
The book explains complex language features in a clear and
concise manner and builds understanding of the language
starting from the basic concepts and building up to rather
advanced topics. It is packed with examples and has quite
a few motivational discussions justifying why certain design
decisions were made in creating the language.
The writing is precise for the most part, as one would hope to
find in a definitive work. But it is laced with allegories and
humor that both clarify the content and make it a lighter read
than might be expected. As you can tell, I liked the book.
I came away with a good understanding of the intentions
and capabilities of the "D" language, although I am sure it
will take another pass through the book and a few hands-on
programming projects for me to really feel comfortable with it.
During that learning phase this book will never be far from
In the interest of completeness, let me list a few things that
this book is not. It is not a text on how to write programs.
The examples are laser-focused on the language feature being
described, and many of the descriptions start a step or two
above "beginner" level and are somewhat terse. One would do
better with this book coming from a solid software development
background and familiarity with the concepts and terminology
of, for example, object-oriented programming.
Curiously, only a little more than half a year off the
presses, there are aspects of the book that are out of sync
with the existing "D" infrastructure. The canonical "Hello,
World!" program will not compile without changes that align it
with the current run-time support libraries. Also, I have run
across a couple of keywords that don't work quite as described
or are not recognized at all by the current compilers. In this
regard, my guess is that the book is a description of how
"D" should be, and the implementation is trying to catch up.
This is certainly not a fatal flaw and perhaps something to be
expected in a dynamic situation, but try out a feature before
you commit large amounts of effort to it.
My only other caveat is that this first edition is somewhat
lacking as a reference manual. The index needs some work;
entries could at least highlight which of a half-dozen page
references is the primary one. At one point I wanted to
clarify use of the "binary '!'" operator. It took me quite a
while to find it on page 234 under "Parameterized Classes and
Interfaces." Some of the "Summary and Reference" sections at
the end of chapters contain useful tables of statement types
or operator precedence, but there is no "List of Tables" to
guide one to the best reference. I'm sure the next edition
will be much improved as a language reference, in the meanwhile
my copy is full of pencil notes and bookmarks.
Note that I have just started coding in "D" and my comments
should be interpreted in that light. I hope that you have
found this review useful.
Most recent customer reviews
never took off; filling the gap at a time when C++ was established, but the
rise of scripting...Read more