Paradigm | compiled, multi-paradigm: procedural, object-oriented, functional, generic, concurrent |
---|---|
Designed by | Walter Bright, Andrei Alexandrescu (since 2007) |
Developer | Digital Mars, Andrei Alexandrescu (since 2007) |
First appeared | 8 December 2001 |
Stable release |
2.073.0 / 22 January 2017
|
Typing discipline | strong, static, inferred |
OS | Unix-like (FreeBSD, Linux etc.), Windows, macOS |
License |
Boost (DMD frontend, standard and runtime libraries), source available (DMD backend), Fully open-source (LDC and GDC) |
Filename extensions | .d |
Website | dlang |
Major implementations | |
DMD (reference implementation), GDC, LDC | |
Influenced by | |
C, C++, C#, Eiffel,Java, Python | |
Influenced | |
MiniD, DScript, Vala, Qore, Swift,Genie | |
|
The D programming language is an object-oriented, imperative, multi-paradigm system programming language created by Walter Bright of Digital Mars and released in 2001. Bright was joined in the design and development effort in 2007 by Andrei Alexandrescu. Though it originated as a re-engineering of C++, D is a distinct language, having redesigned some core C++ features while also taking inspiration from other languages, notably Java, Python, Ruby, C#, and Eiffel.
D's design goals attempt to combine the performance and safety of compiled languages with the expressive power of modern dynamic languages. Idiomatic D code is commonly as fast as equivalent C++ code, while being shorter and memory-safe.
Type inference, automatic memory management and syntactic sugar for common types allow faster development, while bounds checking, design by contract features and a concurrency-aware type system help reduce the occurrence of bugs.