On 29 April 2012 00:42, Peter Alexander <peter.alexander...@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)