Programming in D: Tutorial and Reference
Language ergonomics & learning curve
- Several commenters describe D as very ergonomic and intuitive: “more Python than Python” in how often the “obvious” code just works.
- People report picking it up quickly (e.g., learning it in a day and doing many Project Euler problems without docs).
- The linked tutorial/book is widely praised as one of the best language references; multiple readers say they felt ready to write D after reading it.
- There is interest in an updated edition to cover newer language features.
Education & usage in academia
- D is used in several universities for programming languages, software engineering, computer graphics, and game programming courses.
- Some students enjoyed it but later found it hard to justify investing more time due to low demand in industry.
Tooling, ecosystem, and libraries
- Lack of libraries and a weaker ecosystem vs. C++, Python, etc., is a recurring complaint.
- Tooling is seen as fragmented and confusing: multiple compilers (DMD, LDC, GDC), DUB vs direct compiler use, and inconsistent documentation emphasis.
- IDE support (e.g., debugging, inspecting mixins/attributes) is criticized as immature, especially for metaprogram-heavy code.
- Some DUB behaviors are described as unintuitive (e.g., debug vs release binaries).
Runtime and compatibility issues
- A past crash on large-core machines was acknowledged and fixed quickly.
- Another long-running macOS-related crash for certain compiler versions is mentioned; patches exist but are not yet widely released.
BetterC, GC, and tiny executables
- For very small binaries (e.g., tiny game jam entries), “BetterC” mode is recommended; it strips runtime/GC but also removes or complicates some idiomatic D features.
- Debate arises over whether this still “feels like D,” given limited GC, classes, and dynamic features, though workarounds (manual allocation, placement new) exist.
D vs C++, Go, Rust, etc.
- Enthusiasts argue D is technically superior to C++ (safer, more productive, fewer “footguns”) and ahead of it on many features.
- Skeptics counter that C++ wins on familiarity, libraries, tools, and easier hiring; FFI with complex C++ templates is seen as painful.
- Comparisons broaden into a general “better language vs better ecosystem” debate, referencing Go, Python, Ruby, Dart, Crystal, TypeScript, and others.
Adoption, marketing, and recognition
- Many feel D is “underrated” and suffers from weak marketing and lack of major corporate backing.
- Some see “worse is better” dynamics: simpler or more backed tools win despite perceived technical inferiority.
- Long-time users still enjoy D and are contributing (e.g., new AArch64 backend), but prospective users remain wary of betting on a niche ecosystem.