Ranges

Yigal Chripun yigal100 at gmail.com
Fri Jun 19 18:24:39 PDT 2009


Lutger wrote:
> Yigal Chripun wrote:
> ...
>> IMHO, duck-typing in D is a tragic mistake...  This should have been
>> implemented with compile time interfaces.
> 
> Care to provide arguments?
> 
> 

duck typing makes more sense in dynamic languages like Ruby which is 
famous for it.

in static languages I as a user prefer to trade flexibility due to 
duck-typing for compile time checks.

yes, at compile time, duck typing and (compile-time) interfaces are 
basically the same thing, but since the rest of the language uses formal 
interfaces, it is more consistent (and easier to understand) to use the 
same approach at compile-time as well. point in case, look how much 
unnecessary confusion Ranges cause which would be eliminated had D 
allowed for compile-time interfaces.
i.e.
Interface I { .. }
struct S : I { ... }
this is basically the same as C++ concepts only without redundant and 
confusing syntax.

templates are hard for users to understand and one of the main reasons 
for this is that templates are essentially a completely different 
language with different syntax and semantics which to me looks like 
mis-design.



More information about the Digitalmars-d mailing list