Does D have too many features?

q66 quaker66 at gmail.com
Sat Apr 28 16:19:30 PDT 2012


On Saturday, 28 April 2012 at 23:11:17 UTC, Peter Alexander wrote:
> On Saturday, 28 April 2012 at 22:33:08 UTC, Timon Gehr wrote:
>> - UFCS:
>>   The complexity comes from having multiple function invocation
>>   syntaxes. UFCS actually makes that situation better without 
>> adding a
>>   lot of complexity to the compiler implementation.
>
> Exactly. The problem is having multiple function invocation 
> syntaxes. That's one source of complexity, and UFCS add another 
> in attempt to reduce the first cause.
>
>
>> - const/immutable/shared/pure
>>   shared: The fact that everything that is not marked as 
>> shared is
>>   actually thread-local is extremely important. I think most 
>> other
>>   imperative languages got this wrong.
>>   But if shared is explicit in the type system, immutable 
>> really
>>   should be explicit too. The sad part is that the qualifiers 
>> don't
>>   play nicely with reference types at the moment.
>
> I agree with thread-local by default, but that is separate from 
> shared.
>
>
>> - opDispatch
>>   This is useful and of significant value if used the right 
>> way.
>
> Can you give me an example of it being used the right way?
>

vector swizzling! :D

>
>>   I hope you are not actually serious about that '->' part.
>
> I'm serious. I don't like overloaded syntax.  foo.bar shouldn't 
> also mean (*foo).bar -- it causes confusion and introduces 
> ambiguities when either could work. Combine this with 
> opDispatch, UFCS and function overloading and your in for some 
> nasty headaches.




More information about the Digitalmars-d mailing list