On Saturday, 28 April 2012 at 20:50:30 UTC, H. S. Teoh wrote:
On Sat, Apr 28, 2012 at 09:22:59PM +0200, q66 wrote:
[...]
- AAs integrated in the language; you barely ever use AA
literals and
having them purely in Phobos would help get rid of the runtime
fat, as
well as better implementations
On the contrary, AA's are a major reason I started programming
in D. In
this day and age, it's simply inexcusable to *not* have some
kind of
hash type available by default.
Besides AA literals, library can handle this JUST FINE.
- Phobos is too fat - it needs to shrink to just a few core
modules,
others being distributed via some system like CPAN for Perl
Um... that's what a *library* is supposed to be: a large
collection of
useful stuff from which you can pick the few that you need
right now.
Too large collection becomes too hard to manage. Separating it
and distributing in style "you pay for what you use" is IMO the
right approach.
- Properties - they're kinda broken at this point and the
value is
questionable
What kind of properties are you referring to?
The @property crap. It's broken. If anything, it needs something
like in C#.
- @trusted @system
These are necessary.
They're far from necessary.
- Exception handling - a lot of runtime, questionable value
I completely disagree. No exception handling means lots and
lots and
lots of boilerplate code for checking error codes, return
values, which
are too tedious to write, which translates to many people
leaving them
out and ending up with unreliable code that fail silently or
crash
outright when a function call they assumed would work stopped
working.
If you've worked in large multi-person projects, you'll see
very quickly
why you *need* exception handling. No modern language can do
without
exception handling. Maybe you have a beef with how it's
currently done
in D, but regardless, you *need* exception handling of some
kind.
The exception handling system via try/catch is as bad and tedious
as error codes, except the added runtime. It all roots from the
idea "catch everything that throws". This is broken, as you DON'T
always need to handle all sorts of errors (letting it segfault or
something sometimes simply proves to be better than trying to
save the situation; or you can simply assert it). Also
http://yosefk.com/c++fqa/exceptions.html#fqa-17.1
- Versions - not redundant, but needs a better system (with
AND/OR,
possibility of de-versioning, the assignment op to set
versions is
kinda bad)
[...]
I find versions sorta neat... and they're simple enough that
they don't
add to much bloat to the language. (Whereas if you added AND
and OR to
them, then they start duplicating the function of static if,
and that's
when they become redundant.)
They're nearly unusable now. And the syntax simply makes no sense.
T