The Case Against Autodecode

H. S. Teoh via Digitalmars-d digitalmars-d at puremagic.com
Thu Jun 2 07:48:32 PDT 2016


On Thu, Jun 02, 2016 at 09:06:44AM -0400, Andrei Alexandrescu via Digitalmars-d wrote:
[...]
> ZombineDev, I've been at the top level in the C++ community for many
> many years, even after I wanted to exit :o). I'm familiar with how the
> committee that steers C++ works, perspective that is unique in our
> community - even Walter lacks it. I see trends and patterns. It is
> interesting how easily a small but very influential priesthood can
> alienate itself from the needs of the larger community and get into a
> frenzy over matters that are simply missing the point.

Appeal to authority.


> This is what's happening here. We worked ourselves to a foam because
> the creator of the language started a thread entitled "The Case
> Against Autodecode", whilst fully understanding there is no way to
> actually eliminate autodecode.

I think that's a misrepresentation of the situation.  I was getting
increasingly unhappy with autodecoding myself, completely independently
of Walter, and in fact have filed bugs and posted complaints about it
long before Walter started his thread.  I used to be a supporter of
autodecoding, but over time it has become increasingly clear to me that
it was a mistake.  The fact that you continue to deny this and write it
off in the face of similar complaints raised by many active D users is
very off-putting, to say the least, and does not inspire confidence. Not
to mention the fact that you started this thread yourself with a
question about what it is we dislike about autodecoding, yet after
having received a multitude of complaints, corrobated by many forum
members, you simply write off the whole thing like it was nothing.  If
you want D to succeed, you need to raise the morale of the community,
and this is not the way to raise morale.


> The very definition of a useless debate, the kind he and I had agreed
> to not initiate anymore. It was a mistake. I'm still metaphorically
> angry at him for it.

On the contrary, I found that Walter's willingness to admit past
mistakes very refreshing, even if practically speaking we can't actually
get rid of autodecoding today.  What he proposed in the other thread is
actually a workable step towards reversing the wrong decision behind
autodecoding, that doesn't leave existing users out in the cold, and
that we might actually be able to pull off if done carefully.  I know
you probably won't see it the same way, since you still seem convinced
that autodecoding was a good idea, but you need to understand that your
opinion is not representative in this case.


[...]
> Meanwhile, I go to conferences. Train and consult at large companies.
> Dozens every year, cumulatively thousands of people. I talk about D
> and ask people what it would take for them to use the language.
> Invariably I hear a surprisingly small number of reasons:
> 
> * The garbage collector eliminates probably 60% of potential users
> right off.

At least we have begun to do something about this. That's good news.


> * Tooling is immature and of poorer quality compared to the
> competition.

And what have we done about it? How long has it been since dfix existed,
yet we still haven't really integrated it into the dmd toolchain?


> * Safety has holes and bugs.

And what have we done about it?


> * Hiring people who know D is a problem.

There are many willing candidates right here. :-P


> * Documentation and tutorials are weak.

And what have we done about this?


> * There's no web services framework (by this time many folks know of
> D, but of those a shockingly small fraction has even heard of vibe.d).
> I have strongly argued with Sönke to bundle vibe.d with dmd over one
> year ago, and also in this forum. There wasn't enough interest.

What about linking to it in a prominent place on dlang.org?  This isn't
a big problem, AFAICT.  I don't think it takes months and years to put
up a big prominent banner promoting vibe.d on, say, the download page of
dlang.org.


> * (On Windows) if it doesn't have a compelling Visual Studio plugin,
> it doesn't exist.

And what have we done about this?

One of the things that I have found a little disappointing with D is
that while it has many very promising features, it lacks polish in many
small details. Such as the way features interact with each other in
corner cases. E.g., the whole can't-use-gc from dtor debacle, the
semantics of closures over aggregate members, holes in @safe, holes in
const/immutable in unions, the whole import mess that took
oh-how-many-years to clean up that thankfully was finally improved
recently, can't use @nogc with Phobos, can't use const/pure/etc. in
Object.toString, Object.opEqual, et al (which we've been trying to get
of since how many years ago now?), and a whole long list of small
irritations that in themselves are nothing, but together add up like a
dustball to an overall perception of lack of polish.

I'm more sympathetic to Walter's stance of improving the language for
*current* users, instead of bending over backwards to please would-be
adopters who may never actually adopt the language -- they'd just come
back with new excuses of why they can't adopt D yet. If you make
existing users happier, they will do all the work of evangelism for you,
instead of you having to fight the uphill battle by yourself while
bleeding away current users due to poor morale.


T

-- 
Why ask rhetorical questions? -- JC


More information about the Digitalmars-d mailing list