Does D have too many features?
Alex Rønne Petersen
xtzgzorex at gmail.com
Sun Apr 29 13:36:02 PDT 2012
On 29-04-2012 00:30, Manu wrote:
> On 29 April 2012 00:42, Peter Alexander <peter.alexander.au at gmail.com
> <mailto:peter.alexander.au at gmail.com>> wrote:
>
> On Saturday, 28 April 2012 at 18:48:18 UTC, Walter Bright wrote:
>
> Andrei and I had a fun discussion last night about this
> question. The idea was which features in D are redundant and/or
> do not add significant value?
>
> A couple already agreed upon ones are typedef and the cfloat,
> cdouble and creal types.
>
> What's your list?
>
>
> Here's my list:
>
> - Properties. They add no value and just start pointless discussions
> about what should and shouldn't be a property.
>
> - UFCS. It's just sugar, but adds complexity.
>
> - const/immutable/inout/shared/__pure. These add massive complexity
> to the language for little (IMO) benefit. When I do multi-threading,
> I usually have to resort to casting. Maybe these will improve with time.
>
> - opDispatch. I think it just promotes sloppy, obfuscated code for
> minor syntactical benefit. Member access through pointers should
> require -> like in C++ so that you can overload it for smart
> pointer/reference ADTs.
>
> That's all I can think of for now.
>
>
> I disagree with every one of those points, except maybe 'shared', which
> seems like a good idea in theory, but I think it's completely broken
> (every interaction requires an explicit cast, and there is no facility
> for transfer of ownership, which is a VERY common operation in my
> experience)
For shared to be useful, every function you call on/with a shared
object/value must be templatized. This may be nice if most of the code
you write is template-rich, but like anything else, templates are not a
silver bullet.
IMHO shared is heavily biased in its design, which is bad.
--
- Alex
More information about the Digitalmars-d
mailing list