The Expressiveness of D

Jesse Phillips jessekphillips+D at gmail.com
Tue Nov 2 15:38:15 PDT 2010


Nick Sabalausky Wrote:

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

If find that how people classify whether something is orthogonal to be completely inconsistent. For example it could be said that 'static if' is not orthogonal because you can't do static else or static foreach. But the feature isn't 'static' it is 'static if' and 'static if foreach' doesn't make sense.

I can't say being orthogonal is a bad thing, but if it is the only reason not to add a feature then reason is no longer part of the discussion making. I found this interesting piece on type inference of C#.

Type inference will work on a lambda but not when overload resolution of methods might happen at some point.

http://blogs.msdn.com/b/ericlippert/archive/2007/11/05/c-3-0-return-type-inference-does-not-work-on-member-groups.aspx

D takes the approach of only complaining when two matches are equal or come from separate modules.


More information about the Digitalmars-d mailing list