Justin Johansson Wrote: > 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
tl;dr Anyway, D supports many paradigms, read the slides written by Walter in some conference. They are the truth. D supports imperative, procedural, functinal, metal, meta, constrain, dsl programming, among others. That should be enough.