Interesting rant about Scala's issues

bearophile bearophileHUGS at lycos.com
Fri Apr 4 03:24:17 PDT 2014


Walter Bright:

> Because every cast breaks the type system. A type system that 
> requires too many casts for normal things is NOT a type safe 
> system.
>
> I have explained this on numerous occasions.

You have discussed many times about the unsafety of casts and I 
agree with your point of view. I try to reduce the number of 
casts as much as possible in my code (and recently I have 
replaced many "cast(double)x" with nice "double(x)", as time 
passes D allows to remove more and more casts from the code, this 
is an improvement).

You see I care of casts also from the little casts statistic I've 
done on your Warp:
http://forum.dlang.org/thread/lhf0u6$2r80$1@digitalmars.com?page=3#post-wjjivmmeyeismgkntwsj:40forum.dlang.org
Or from answers I keep giving in D.learn, where I suggest to 
minimize the usage of casts:
http://forum.dlang.org/thread/efbjrtwqywkhfybmyvxy@forum.dlang.org

But since I follow D development and I write D code I don't 
remember any kind of discussion regarding the specific 
disadvantages of a stronger typed enum. This means answering 
questions like: what does it happen if D enums become strongly 
typed? How many casts is this going to cause in D code? Is it 
true that such enum casts are going to be worse than type 
unsafety of the current design? I don't remember seeing any 
little study that shows that stronger casts in D increase a lot 
the number of casts. Perhaps this little study was done before I 
have started to use D1 and I have missed it.

I suspect that in my D code most cast usage does not need casts 
if you replace them with stronger casts as the "enum class" of 
C++11, but I have no proof of this.

Bye,
bearophile


More information about the Digitalmars-d-announce mailing list