The Expressiveness of D

retard re at tard.com.invalid
Tue Nov 2 14:27:12 PDT 2010


Tue, 02 Nov 2010 17:00:06 -0400, Nick Sabalausky wrote:

> "%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.

I don't know/like Go that much, but I think the bugs %u listed had some 
merit. Even if they are compiler bugs, they add inconsistensies to the 
language. I don't know about the tuple stuff.. having _(...) on the left 
hand side and tuple(...) on the right hand side seems unlogical, but if 
that's the way it works, it's a simple rule.

All kinds of extremes are bad. Scheme, Io, Unlambda, Intercal, 
Whitespace, .. all have a over simplistic syntax. It restricts way too 
much. APL, OTOH, has too much syntax for general purpose work. Same thing 
with type systems. Untyped or very weakly typed languages are dangerous. 
Extremely strongly typed languages make it challenging to write anything 
that compiles.


More information about the Digitalmars-d mailing list