|Interview with Walter Bright, Designer of the D Programming Language|
April 2003, by Helmut Leitner, for DseWiki
Helmut Leitner: Walter, please give us a brief introduction to who you are and tell us about the background that made you create a new programming language.
D has an impressive set of features but before we go into detail: what were the top priorities for the development?
C and C++ are great programming languages. But they are showing their age - the necessity to support legacy code has made it increasingly difficult to integrate in modern features in a sensible way. D takes a fresh look at the features, syntax, and modern features, and refactors the language into a sensible, practical, modern language. D retains the look and feel of C/C++, and is easy to learn by anyone familiar with C/C++. This refactoring enables D to be a more powerful programming language while being a far easier language to learn and implement.
Who are the programmers and what are the application areas that D targets?
In short, any application that would otherwise use C or C++ would be suitable for D. D looks and feels like C/C++, but fewer lines of code are needed, and performance is better. D is most suited to applications requiring native code, small executable file size, and high speed. D has all the features that make C/C++ nice for writing system applications, and even does better by providing direct support for inline assembler.
The language market is dominated by hyped languages, both from the big guys (e.g. Java, Visual Basic and Java) and from the Open Source community (e.g. Perl, Python and Ruby). Where do you position yourself and D?
The source code to the front end for D is open source and GPL'd, and I fully support connecting it to the GCC back end to create a fully GPL'd implementation of D. The D source is dual licensed, so it is also possible for a company to create a proprietary version of D if they wish.
Let's now look at D itself. Please give us a short summary of the most important features of D, the selling points that make it unique?
Simpler syntax, far fewer special cases, design by contract, garbage collection, elimination of need for pointers, advanced arrays, versioning, binary compatibility with C, easy learning curve, advanced templates, inline assembler, interfaces, modules.
Which platforms will you support and how do you estimate their relative importance in the future?
The main platforms are Win32 and x86 Linux. These are far and away the most important platforms as far as market share goes. Other platform support will depend on someone besides me being willing to take up the torch for them. Attaching D to the GCC code generator will certainly open up a vast number of platforms for D.
How does your contact to the online community look like? How much influence does it have? How is the technical and emotional feedback that you get?
The online community has been a great influence and help with D. It's helped round out the feature set, point out flaws in the design, and find errors and bugs. The user community has been a great help in helping me understand the multitude of C/C++ programming paradigms and how they should be addressed with D.
Given that you label the current compiler 0.61, you will have a long task list. What does this version number mean and what can we expect for the next few months?
0.61 just means that 61 versions have been created, as the language evolves through experience and feedback. For the next few months I'll be concentrating on fixing bugs as they occur and making sure it is stable and fleshed out.
I think all that looks very promising. Walter, thank you for this great new language D and for this interview.