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