On 28-04-2012 22:43, Timon Gehr wrote:
On 04/28/2012 09:58 PM, foobar 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?
D has a lot of ad-hock features which make the language
needlessly large and complex. I'd strive to replace these with
better general purpose mechanisms.
My list:
* I'd start with getting rid of foreach completely. (not just
foreach_reverse).
foreach is very useful. Have you actually used D?
Removing it would be craziness.
This is nothing more than a fancy function with
a delegate parameter.
That would be opApply.
* enum - enum should be completely redesigned to only implement
what it's named after: enumerations.
What is the benefit?
* version - this does not belong in a programming language. Git
is a much better solution.
So you'd maintain a git branch for every OS if there is some small part
that is OS-dependent? I don't think that is a better approach at all.
That is absolutely horrible. It's not how branches are meant to be used.
* di files - a library should encapsulate all the info required
to use it. Java Jars, .Net assemblies and even old school; Pascal
units all solved this long ago.
* This is a big one: get rid of *all* current compile time
special syntax.
What would that be exactly?
It should be replaced by a standard compilation
API and the compiler should be able to use plugins/addons.
Are you serious?
This would reduce the size of the language to half of its current
size, maybe even more.
I am certain that it would not.
You missed to present the 'general purpose mechanisms'.
--
- Alex