The Expressiveness of D

dsimcha dsimcha at yahoo.com
Tue Nov 2 14:26:36 PDT 2010


== Quote from Nick Sabalausky (a at a.a)'s article
> "%u" <user at web.news> wrote in message news:iap1l4$17hk$1 at digitalmars.com...
> >I found a slideshow called 'The Expressiveness of Go' recently. The
> >conclusions are:
> >
> > * Go is not a small language but it is an expressive and comprehensible
> > one.
> >
> > * Expressiveness comes from orthogonal composition of constructs.
> >
> > * Comprehensibility comes from simple constructs that interact in easily
> > understood ways.
> >
> > * Build a language from simple orthogonal constructs and you have a
> > language that will be easy and productive to use.
> >
> > * The surprises you discover will be pleasant ones.
> >
> I know how much the Unix creators (ie, Go creators) *love* taking
> orthogonality to extremes. I find that leads to puritanical languages that
> actively avoid pragmatism (ie, some of the worst kinds of languages).
> Orthogonality is good for *machines*, but not quite as much for humans (in
> moderation, yes, in large doses, no). Even programmers aren't as
> orthogonally-minded as we often think we are. It's a bad idea for them, and
> it's just gonna lead to another Java/Smalltalk/Haskel/etc, and we've already
> got a million of those, we certainly don't need yet another. I find it
> really odd that no matter how many times people keep trying that
> purity-not-pragmatic approach to language design and end up with junk,
> others still keep trying to make "better" languages by using the same damn
> ideology that led to the problems in the first place.

The big problem with an excessive focus on orthogonality is that you lose the
ability to program at a wide range of abstraction levels in the same language,
because the different levels will inevitably clash in some odd corner cases.
IMHO, though, these corner cases are worth having in exchange for the ability to
program at a variety of abstraction levels in one language.


More information about the Digitalmars-d mailing list