<div class="gmail_quote">On 29 April 2012 00:42, Peter Alexander <span dir="ltr"><<a href="mailto:peter.alexander.au@gmail.com">peter.alexander.au@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On Saturday, 28 April 2012 at 18:48:18 UTC, Walter Bright wrote:<br>
</div><div><div class="h5"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
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?<br>
<br>
A couple already agreed upon ones are typedef and the cfloat, cdouble and creal types.<br>
<br>
What's your list?<br>
</blockquote>
<br></div></div>
Here's my list:<br>
<br>
- Properties. They add no value and just start pointless discussions about what should and shouldn't be a property.<br>
<br>
- UFCS. It's just sugar, but adds complexity.<br>
<br>
- const/immutable/inout/shared/<u></u>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.<br>
<br>
- 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.<br>

<br>
That's all I can think of for now.<br>
</blockquote></div><br><div>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)</div>