A summary of D's design principles

Lutger lutger.blijdestijn at gmail.com
Sun Sep 19 06:49:52 PDT 2010


Justin Johansson wrote:

> On 19/09/2010 2:59 AM, Lutger wrote:
>> To me some of the most distinguishing aspects of D are:
>>
>> - scale to complex as well as small programs: unlike C# and Java but perhaps
>> like python
>>
>> - focus on early binding: this quote from David Griers is fitting: "Never put
>> off until run time what you can do at compile time." But also related is the
>> tendency to choose for a rich set of features, binding at 'language design
>> time'
>>
>> - support a diversity of programming styles (like C++, python) and attempt to
>> integrate them
>>
>> - support for features that help, and avoid designs that complicate
>> maintenance of large programs
>>
>> - take advantage of existing C knowledge and codebase
>>
>> - enable the programmer to make his own tradeoff between performance and
>> other quality criteria: this is true of many languages, but in D there is a
>> much wider space to choose from.
> 
> I think the salient point that all miss is that D does not
> expand beyond the classical OO paradigm in any meaningful way.

I don't understand this statement, there are quite a few things in D that 
support a different style of programming than OOP, such as: 
- closures for higher-order programming
- pointers, systems programming features
- templates
- pure, transitive const and immutable

Do you think this is not meaningful? Or do you mean that what is actually needed 
is a better OOP system than what D offers? What do you have in mind?


More information about the Digitalmars-d mailing list