What are the worst parts of D?

H. S. Teoh via Digitalmars-d digitalmars-d at puremagic.com
Tue Sep 23 22:10:13 PDT 2014


On Wed, Sep 24, 2014 at 04:46:00AM +0000, Sean Kelly via Digitalmars-d wrote:
> On Wednesday, 24 September 2014 at 03:44:52 UTC, Walter Bright wrote:
> >On 9/23/2014 7:29 AM, Sean Kelly wrote:
[...]
> There's clearly been a lot of attention paid to bug fixes.  But for
> the rest... I feel like the overall direction is towards whatever is
> currently thought to gain the most new users.  The thing is that D has
> already *got* me.  What I want is for the language I've already got to
> be polished until I can use it in a freaking space telescope.  I'm
> sick of "yes but" languages.  Every time I hit an obstacle in D I
> think "oh great, D is way behind other languages in all these ways and
> D itself is broken to boot.  Why am I using this again?"  And it could
> be a tiny thing.  It doesn't matter.  Every little issue like that is
> magnified a thousandfold because D is already such a hard sell.

Yeah, I wish that at least *some* attention would be paid to refining
existing features so that problematic corner cases could be ironed out.
Like identifier lookup rules for local imports. And what to do about
dtors. And so many little niggling details that seem minor, but added
together, can form a pretty big mountain of frustration sometimes.


[...]
> >>And inconsistency in how things work in the language.  Oh, and
> >>function attributes.  I'm sure someone likes them, but I'm drowning
> >>in pure system const immutable @nogc @illegitemate @wtf hell.
> >
> >Fortunately, those attributes are inferred for template functions.
> >
> >I did try to extend that to auto functions, but got a lot of
> >resistance.

I support attribute inference for auto functions. The more inference,
the better, I say. That's the only way attributes will become
practically useful.


> Yes, the inference is very nice.  And I do see the use for each
> attribute.  It's just... when I look at a function and there's a line
> of attributes before the function declaration that have nothing to do
> with what the function actually does but rather with how it's
> implemented, it's just syntactic noise.  It's information for the
> compiler, not me as a user.  I hope we'll eventually get to the point
> where everything is inferred and the attributes disappear entirely.

I haven't actually tried this yet, but I'm been toying with the idea of
writing *all* functions as template functions (except where impossible,
like virtual functions), even if they would take only zero compile-time
arguments. This way, I reap the benefits of attribute inference, *and* I
also get automatic culling of unused functions from the executable ('cos
they wouldn't be instantiated in the first place).


T

-- 
Just because you survived after you did it, doesn't mean it wasn't stupid!


More information about the Digitalmars-d mailing list