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.