A summary of D's design principles
Justin Johansson
no at spam.com
Sun Sep 19 07:04:38 PDT 2010
On 19/09/2010 11:49 PM, Lutger wrote:
> 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?
Some of these features you mention are very worthwhile but I mean that
that D does not offer any better OOP system amongst its contemporary
rivals.
To be well read on the subject of OOP models I can recommend this link
to a well-articulated paper by Bertrand Meyer:
http://se.ethz.ch/~meyer/publications/computer/taxonomy.pdf
Cheers
Justin Johansson
More information about the Digitalmars-d
mailing list