A summary of D's design principles

Justin Johansson no at spam.com
Sun Sep 19 06:07:13 PDT 2010


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.

When all you have is a hammer, everything looks like a nail.

When all you have is classical OO, everything looks like it
can be modeled with inheritance by addition (rather than
inheritance by restriction for example) or an interface
(rather than a trait for example also).

There is no need, or significant consumer demand, to reinvent
another classical OO language in 2010.  To make any inroad,
a new language in these times needs to leverage upon some of
the lesser well known yet powerful idioms of PLs that allow
for extensible type systems.

Cheers
Justin Johansson



More information about the Digitalmars-d mailing list