Start reading The D Programming Language on the free Kindle Reading App or on your Kindle in under a minute. Don't have a Kindle? Get your Kindle here.
Programming Books C Java PHP Python Learn more Browse Programming Books

Deliver to your Kindle or other device

Enter a promotion code
or gift card

Try it free

Sample the beginning of this book for free

Deliver to your Kindle or other device

Anybody can read Kindle books—even without a Kindle device—with the FREE Kindle app for smartphones, tablets and computers.
Sorry, this item is not available in
Image not available for
Image not available

To view this video download Flash Player


The D Programming Language [Kindle Edition]

Andrei Alexandrescu
4.5 out of 5 stars  See all reviews (53 customer reviews)

Digital List Price: $39.99 What's this?
Print List Price: $49.99
Kindle Price: $22.99
You Save: $27.00 (54%)


Amazon Price New from Used from
Kindle Edition $22.99  
Paperback $38.74  
Shop the new
New! Introducing the, a hub for Software Developers and Architects, Networking Administrators, TPMs, and other technology professionals to find highly-rated and highly-relevant career resources. Shop books on programming and big data, or read this week's blog posts by authors and thought-leaders in the tech industry. > Shop now

Book Description

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 pre¿cision. 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 features
  • How feature groups support major programming paradigms
  • Rationale and best-use advice for each major feature
  • Discussion of cross-cutting issues, such as error handling, contract programming, and concurrency
  • Tables, 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.

Customers Who Bought This Item Also Bought

Editorial Reviews

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.

Product Details

  • File Size: 9744 KB
  • Print Length: 460 pages
  • Simultaneous Device Usage: Up to 5 simultaneous devices, per publisher limits
  • Publisher: Addison-Wesley Professional; 1 edition (June 2, 2010)
  • Sold by: Amazon Digital Services, Inc.
  • Language: English
  • ASIN: B004DI7ISC
  • Text-to-Speech: Enabled
  • X-Ray:
  • Lending: Not Enabled
  • Amazon Best Sellers Rank: #82,736 Paid in Kindle Store (See Top 100 Paid in Kindle Store)
  •  Would you like to give feedback on images?

Customer Reviews

Most Helpful Customer Reviews
27 of 27 people found the following review helpful
5.0 out of 5 stars A great introduction to D June 25, 2010
Format:Paperback|Verified Purchase
This book is one of the things D really needed to launch itself out of obscurity. It thoroughly explains the strengths of the language, why it is a practical language to learn and use, and it walks you through the more complex aspects of the language such as meta programming and concurrency/threading (which is often overlooked). As others have stated, it would be nice to have more real world examples - but then again, I never liked the books that have 5 out of 6 pages completely filled with code. This book is a good introduction to the rich toolset D provides - it's up to you to dig in and get experienced.
Comment | 
Was this review helpful to you?
23 of 23 people found the following review helpful
5.0 out of 5 stars A Good Read Even For A Hardcore D User June 22, 2010
Format:Paperback|Verified Purchase
I've been using D regularly for about 2 years. When I heard about this book, I bought it more out of curiosity than anything. I was pleasantly surprised when this book revealed facets of D that I had not been aware of through two years of usage, library writing and forum surfing. Andrei's entertaining yet to-the-point style makes this a pleasant read, and he manages to cover both basic and advanced topics thoroughly yet succinctly.
Comment | 
Was this review helpful to you?
27 of 29 people found the following review helpful
5.0 out of 5 stars A Modern Classic August 1, 2010
First, a little context. I've been around the D community for a few years, keep a blog about items of interest to D users, maintain an open source D project and, in 2007, coauthored "Learn to Tango with D". Through all of that, the majority of my experience was with D1. I was hesitant, even reluctant, to use version 2 of the language because, in some ways, it is a bit paradigm shift from the first version. Andrei's book has dispelled any doubts I had about moving forward with D2.

D2 melds several different programming paradigms into one whole. One of the most radical differences from existing C-family languages is the concept of 'ranges', which are intended as an improvement over, and replacement for, the more familiar 'iterators' of other languages. Before the book, while ranges were being implemented in the alpha versions of the D2 compiler, some people had trouble wrapping their heads around ranges. Here, Andrei explains them in a way that makes them easy to grok and will have you using them in no time. And it's important that you do understand them as Phobos, D's standard library (which is intentionally not given much coverage in the book) has been reworked around the concept.

Aside from ranges and the more basic features of D which aren't so foreign, you'll also learn about D's interpretation of constness and immutability (D's const and immutable keywords are intended to improve upon the mess that is C++ const), and the D style of concurrent programming. D is poised to slot seamlessly in to the world of multi-core programming, with built-in features that simplify the process for those, like me, who can't think on that scale. Andrei's explanation of concurrency pitfalls and D's solutions should turn a light on for you if you're in the dark about it.
Read more ›
Was this review helpful to you?
14 of 14 people found the following review helpful
5.0 out of 5 stars Learning D2 as a Java Programmer -- Great Book August 6, 2011
If you love programming and are interested in D2, this is the book for you. I picked it up because I think D2 offers a compelling feature set for doing high performance computing while getting some of the productivity gains associated with higher level languages. I have read it cover to cover and keep going back to it as a reference. It's an engaging read and it is packed with really well thought out examples that both explain and entertain. For example, the concurrency chapter is an eye opener, with D2 turning the conventional default shared model on its head, and the discussion of D2's multiple-subtyping (an elegant and safe alternative to multiple inheritance) not only explains the problem and the solution, but also that the groundwork was laid by features first introduced in other languages, such as Java.

As a Java programmer, I find that D2 offers me some of the comforts of home (garbage collection (but with better options for memory management), a similar module structure (package, class, interface) and a similar syntax) while removing constraints and offering many more modern features and different programming paradigms (functional, imperative, object-oriented). It produces native executables and interfaces well with C, which makes it much more suitable for low-level, high performance applications and interfacing with the latest technologies in high performance computing (FPGA, GPU, RDMA, etc.). The language is not without issues, but the pros far outweigh the cons and you have a really smart group of folks behind it, including the creator, Walter Bright, and the author of this book, Andrei Alexandrescu. I highly recommend The D Programming Language.
Comment | 
Was this review helpful to you?
11 of 11 people found the following review helpful
5.0 out of 5 stars A fascinating read July 29, 2011
Format:Paperback|Vine Customer Review of Free Product (What's this?)
This is not only the pre-eminent book on the D language, it is also a fascinating read. It actually covers D2, the 2nd generation of the D language.

This is a must-have book for anyone who programs in D or wants more than a cursory understanding of the D language. It is also excellent for any C++ or Java programmer who (like me) would appreciate insights into the how and why of language design.

As an experienced C++ programmer who has also used many other languages from LISP to Java, I was intrigued by D and wanted to learn more. Andei Alexandrescu did not let me down. He not only provides a complete expose on the language, but also offers a remarkably insightful look at how language design choices were made. It was, I might add, a very compelling argument in favor of D. I wish I could switch from C++ today, but only time will tell if D will become well enough established to broadly supplant C++ and/or Java.

D was given birth by Walter Bright, an experienced C++ compiler designer, who wanted to design a better language from the perspective of a compiler writer with a very intricate understanding of the C++ language and its inefficiencies. The end result is a language that is not only more compiler-friendly, but is a joy to program. D is intended to be suitable as systems programming language, as was C++; but also provides the means for simpler code to do more complex tasks. It is quite flexible and supports multiple programming paradigms while remaining high performance.

This book is both entertaining and intellectually stimulating. As I read, I felt that I was thinking along with the author, as if in a close conversation. At times, I felt that reading the book required perceiving the author's mindset to fully grasp what was being said.
Read more ›
Comment | 
Was this review helpful to you?
Most Recent Customer Reviews
3.0 out of 5 stars The good news is that there's a fairly good set of ...
This is a fairly decent introduction for a computer language, but it could have used a more intensive editing process. Read more
Published 1 month ago by B.L.
5.0 out of 5 stars Great Style & Powerful Language
The author has an interesting and engaging style of writing, with a focus on the underlying philosophies and trade-offs made in the design of the language. Read more
Published 1 month ago by R
5.0 out of 5 stars A must buy, even if not interested in D
Student with a strong C / C++ background, I first discover Alexandrescu by one of his other book, 'Modern C++ templates'. Read more
Published 2 months ago by LANG Mathias
4.0 out of 5 stars Caution: A small weirdness with the Kindle edition
Overall, I like this book very much, and I'll post a more comprehensive review in another note. BUT, I wanted to point out something specific that I am seeing in the Kindle... Read more
Published 2 months ago by Vernon A. Miller
5.0 out of 5 stars A great language if your need is speed!
I was drawn to D by the need my application has for speed. Some D benchmarks show D as being faster than compiled C++

If you follow the latest programming language... Read more
Published 3 months ago by Gary A. Miller
4.0 out of 5 stars clear and complete D tutorial
very good book covering all topics of D programming language for the uninitiaded.
The only thing that is not enough after reading it is the interoperantibility with other... Read more
Published 5 months ago by Gabriel Wernersbach Farinas
1.0 out of 5 stars Not so good
Why the high ratings? This book is not good. There's errors in practically every other page. The current best D book is Ali Çehreli's D programming tutorial. Read more
Published 7 months ago by Truth
5.0 out of 5 stars Just read it
It's not a good book, it is a great book! It stands out from a typical programming language exposition, which is usually written as dry, long list of commandments with some code... Read more
Published 11 months ago by Paul Jurczak
5.0 out of 5 stars Reading Andrei's explanation of D choices
Reading Andrei's explanation of D choices is invaluable, and for someone who read Modern C++ back in the day, they have more weight than just any other writer documenting or... Read more
Published 12 months ago by Vlad Grecescu
4.0 out of 5 stars Nicely presented work on substantial improvements over c/c++.
Fairly complete description of language features, comparing with some aspects of other languages, which are often difficult to master. Read more
Published 13 months ago by P
Search Customer Reviews
Search these reviews only

More About the Author

Andrei Alexandrescu coined the colloquial term "modern C++", used today to describe a collection of important C++ styles and idioms. His eponymous book on the topic, Modern C++ Design: Generic Programming and Design Patterns Applied (Addison-Wesley, 2001), revolutionized C++ programming and produced a lasting influence not only on subsequent work on C++, but also on other languages and systems. With Herb Sutter, Andrei is also the coauthor of C++ Coding Standards: 101 Rules, Guidelines, and Best Practices (Addison-Wesley, 2004). Through Andrei's varied work on libraries and applications, as well as his research in machine learning and natural language processing, he has garnered a solid reputation in both industrial and academic circles. Since 2006, he has been second-in-command to Walter Bright, the D programming language inventor and initial implementer. Andrei has been the key designer of many important features of D and has authored a large part of D's standard library, positioning him to write an authoritative book on the new language, appropriately entitled, The D Programming Language. Andrei holds a Ph.D. in Computer Science from the University of Washington and a B.Sc. in Electrical Engineering from University "Politehnica" Bucharest. He works as a Research Scientist for Facebook.

What Other Items Do Customers Buy After Viewing This Item?


There are no discussions about this product yet.
Be the first to discuss this product with the community.
Start a new discussion
First post:
Prompts for sign-in

Look for Similar Items by Category