September 03, 2018
On Sunday, 2 September 2018 at 12:07:17 UTC, Laeeth Isharc wrote:
> I've only been programming since 1983 so I had the benefit of high level languages like BBC BASIC, C, a Forth I wrote myself, and Modula 3.  And although I had to write a disassembler at least I has assemblers built in.  Programming using a hex keypad is not that satisfying after a while.  It takes a long time to develop a language, its ecosystem and community.

Hear, hear!

Even though some languages like Julia, Rust and Go are much better funded than D - and their creators have excellent taste in different ways - they still have to go through similar evolutionary steps. There is no fast path. Whatever design decision you make, you always end up fixes bugs and corner cases. I was amazed how behind Rust's debugger support was last year (I witnessed a talk at FOSDEM). They are catching up, but it just goes to show...

One thing I want to add that we ought to be appreciative of the work people put in - much of it in their spare time. I wonder if W&A and others sometimes despair for the lack of appreciation they get. Guido van Rossum burning out (W, notably, was the one to post that here first) is a shame. Even though he created a language which I find less tasteful he did not deserve to be treated like that. Simple.



September 03, 2018
On Sunday, 2 September 2018 at 12:07:17 UTC, Laeeth Isharc wrote:

>
> That's why the people that adopt D will inordinately be principals not agents in the beginning. They will either be residual claimants on earnings or will have acquired the authority to make decisions without persuading a committee that makes decisions on the grounds of social factors.
>
> If D becomes another C++ ?  C++ was ugly from the beginning (in my personal subjective assessment) whereas D was designed by people with good taste.
>
> That's why it appeals inordinately to people with good taste.
>
[snip]

Be that as it may, however, you forget the fact that people "with good taste" who have (had) an intrinsic motivation to learn D are also very critical people who take no bs, else they wouldn't have ended up using D in the first place. Since they've already learned a lot of concepts etc. with D over the years, it's technically easy for them to move on to either an easier language or one that offers more or less the same features as D. So once they're no longer happy with the way things are, they can dive into a any language fast enough for the cost of transition to be low.

One has to be practical too. Programming involves more than just features and concepts. Good, out of the box system integration (e.g. Android, iOS) is important too and he who ignores this simple truth will have to pay a high price. That's why developers of new languages are so keen on giving users a smooth experience when it comes to app development and cross compilation which leads me to the next point: IDEs.

No. You don't need an IDE to develop in D. However, an IDE can a) make coding comfortable and b) boost your productivity. As to a): maybe you just grow tired of the text editor & cli approach and you just want to click a few buttons to fix imports or correct typos and be done with it, and as to b): all this helps to boost your productivity, especially when you can easily set up an app or a web service with a few mouse clicks. In D, if you want to do something with ARM/Android you will invariably end up with a potpourri of build scripts and spaghetti lines full of compiler flags etc. Not smooth, it takes a lot of time to set it up manually and it's not easily maintainable. Doable, yes, but just because something is doable doesn't mean it's recommendable nor that people will actually bother with doing it. I'm under the impression that the D Foundation doesn't pay much attention to these things once they are kind of "doable" and somebody has volunteered to "look into it" with no guarantee whatsoever if and when it will be available to users. And if there are complaints, hey, it is not "official" ask the guy who's looking into it. Not very professional. See, that doesn't really give you confidence in D and it gives you an uneasy feeling. Nothing worse in software development than to be programming thinking "Am I actually wasting my time here?", and of course, you become reluctant to start anything new in D - which is only natural.


September 03, 2018
On Monday, 3 September 2018 at 06:29:02 UTC, Pjotr Prins wrote:

> Hear, hear!
>
> Even though some languages like Julia, Rust and Go are much better funded than D - and their creators have excellent taste in different ways - they still have to go through similar evolutionary steps. There is no fast path. Whatever design decision you make, you always end up fixes bugs and corner cases. I was amazed how behind Rust's debugger support was last year (I witnessed a talk at FOSDEM). They are catching up, but it just goes to show...

No programming language is ever finished. But most programming languages try to get the basics right first and then add new features. If you want to run you have to learn how to walk first. Languages take time to evolve, but we shouldn't be in a situation where the fixing of basic bugs and flaws are considered part of the "long term goals".

> One thing I want to add that we ought to be appreciative of the work people put in - much of it in their spare time. I wonder if W&A and others sometimes despair for the lack of appreciation they get. Guido van Rossum burning out (W, notably, was the one to post that here first) is a shame. Even though he created a language which I find less tasteful he did not deserve to be treated like that. Simple.

I hold both Walter and Andrei (and all the other great contributors) in high esteem and D was the right tool for me back in the day. Without it things would have been a lot harder. But I think D is past the laboratory stage and I as a user feel that our actual experience is less important than design experiments. Respect goes both ways, after all it's the users who keep a programming language alive. If there isn't something fundamentally wrong in the communication between the leadership / language developers and the users, why do we get posts like this:

"Thanks! Please add anything you think is missing to https://github.com/dlang/dlang.org/pull/2453 since Walter doesn't seem to be interested."

https://forum.dlang.org/post/mxgyoflrsibeyavvmjuq@forum.dlang.org

Not good.
September 03, 2018
On Monday, 3 September 2018 at 06:29:02 UTC, Pjotr Prins wrote:
> One thing I want to add that we ought to be appreciative of the work people put in - much of it in their spare time. I wonder if W&A and others sometimes despair for the lack of appreciation they get. Guido van Rossum burning out (W, notably, was the one to post that here first) is a shame. Even though he created a language which I find less tasteful he did not deserve to be treated like that. Simple.

I feel the same. There is no need to put a huge burden on them even if there is something could not be fixed. A good subset of a language is still a good language I think. Powerful, expressive, precise, that's important for me.
September 03, 2018
On Monday, 3 September 2018 at 11:32:42 UTC, Chris wrote:
> On Sunday, 2 September 2018 at 12:07:17 UTC, Laeeth Isharc wrote:
>
>>
>> That's why the people that adopt D will inordinately be principals not agents in the beginning. They will either be residual claimants on earnings or will have acquired the authority to make decisions without persuading a committee that makes decisions on the grounds of social factors.
>>
>> If D becomes another C++ ?  C++ was ugly from the beginning (in my personal subjective assessment) whereas D was designed by people with good taste.
>>
>> That's why it appeals inordinately to people with good taste.
>>
> [snip]
>
> Be that as it may, however, you forget the fact that people "with good taste" who have (had) an intrinsic motivation to learn D are also very critical people who take no bs, else they wouldn't have ended up using D in the first place. Since they've already learned a lot of concepts etc. with D over the years, it's technically easy for them to move on to either an easier language or one that offers more or less the same features as D. So once they're no longer happy with the way things are, they can dive into a any language fast enough for the cost of transition to be low.


> One has to be practical too.
Yes!  And being practical involves recognising different objectives, starting points and considerations apply to different situations and contexts.

> Programming involves more than just features and concepts. Good, out of the box system integration (e.g. Android, iOS) is important too and he who ignores this simple truth will have to pay a high price.

Important for whom?  It depends a lot!  Ask Sociomantic, Bastian, Weka if the lack of Android or iOS integration is a big problem for them, and I don't think you will get the answer that it is important.  For what I am doing, Android or iOS would be nice, but it doesn't need to be out of the box, and you can do quite a lot on Android already.  I compiled ldc on my Huawei watch, which I never expected to be possible though given it has 4 Gig of RAM it's not that surprising.  JNI is not that bad though could certainly be made easier with a bit of work.  And I haven't tried, but I guess you could write the GUI stuff in Python or Lua for a simple app and do the heavy lifting with D.

Of course for the ecosystem generally yes it matters.

> why developers of new languages are so keen on giving users a smooth experience when it comes to app development and cross compilation which leads me to the next point: IDEs.

D has never been about smooth experiences!  That's a commercial benefit if you think that hormesis brings benefits and you are not looking for programmers of the trained-monkey, strap a few APIs together type.

It's a question of developmental stages too.  I was a late developer as a person, but then I continued to develop into my 30s and perhaps 40s too.  For human beings there are different kinds of people and implicit life strategies and natural fits with niches.  Some are quick to grow up, but stop developing sooner and others mature more slowly but this process may continue long after others are done.  I'm not saying a computer language is like a human being, but it is in part an organic phenomenon and social institutions develop according to their own logic and rhythm in my experience of studying them.

D is a late developer, and I think that's because it is a tremendously ambitious language.  What use case is D intended to target?  Well it's not like that - it's a general purpose programming language at a time when people have given up on that idea and think that it simply must be that you pick one tool for the job and couldn't possibly have a tool that does many different kind of things reasonably well.  So the kind of use cases D is suited for depends much more on the capabilities and virtues of the people using it than is the case for other languages.  (In truth in a negative sense that's true also of other languages - Go was designed to be easy to learn and to use for people who didn't have much programming experience).

> No. You don't need an IDE to develop in D

Indeed, and much less so than with some other languages because you can understand the code that's out of focus more easily and hold more of it in your head and reason about it.  I personally use Sublime and vim, but tools are very personal because problems are different and people think differently and there's not much upside in engaging in a holy war about tools.

> However, an IDE can a) make coding comfortable and b) boost your productivity.
Sure - in can do for some people in some cases.

> to a): maybe you just grow tired of the text editor & cli approach and you just want to click a few buttons to fix imports or correct typos and be done with it, and as to b): all this helps to boost your productivity, especially when you can easily set up an app or a web service with a few mouse clicks.

Sure.  I would agree with what you write but say that it's a case of capabilities and hormesis too sometime.  Nassim Taleb told a story about checking into a hotel and seeing a guy in a suit tip the bellboy to carry his bags upstairs.  Later on he saw the same guy in a gym lifting weights (and I think on a Nautilus-type machine which is much inferior to free weights).  So any tool can make you lazy, and yet any tool - no matter how shiny, polished, and expensive - sometimes will break and then if you are afraid of the command line or just very out of practice you can end up utterly helpless.  It's a matter of balance to be sure.

> In D, if you want to do something with ARM/Android you will invariably end up with a potpourri of build scripts and spaghetti lines full of compiler flags etc. Not smooth, it takes a lot of time to set it up manually and it's not easily maintainable.

I didn't find the experience last time I tried to be worse than just going through the Android C/C++ native SDK instructions.  The first time I tried it was quite tough as I struggled to even build the compiler as the instructions weren't quite right.  I disagree about it not being maintainable as it's much easier to keep something you understand and can reason about working, but it's harder to use in the beginning, for sure.

I think that the point for Android and ARM is not the build process but integration with Java APIs.  If you can't figure out a build process that when I tried it mostly just worked and that doesn't have too much dark magic, I fear for how easy you are going to find JNI.  (JNI is fine, but building a D project on Android requires less demanding technical capabilities).

> Doable, yes, but just because something is doable doesn't mean it's recommendable nor that people will actually bother with doing it.

You had one or two people who stubbornly devoted considerable parts of their lives to getting D to build on Android.  And instead of saying what a remarkable achievement, and thank you so much for this work, and this is very cool but we really should consider in a constructive manner how to make this easy to use, you are saying I want more!  Fair enough - it's a free society, although I don't think you were ever promised that the Android experience would be something different from what it is.

But I really am not surprised that people burn out doing open source.  It's very odd to see, because I came back to this world after a long break.  My first 'open source' contribution was to part of Tom Jenning's work on FidoNet in 1989 - an improvement to some node routing table, and in those days people used to be pretty appreciative.  Same thing with Chuck Forsberg who invented ZModem and came to that same conference - people then didn't talk about all the deficiencies but they understood this was a labour of love and the kind of attitude one sees so commonly today I couldn't have imagined.

> I'm under the impression that the D Foundation doesn't pay much attention to these things once they are kind of "doable" and somebody has volunteered to "look into it" with no guarantee whatsoever if and when it will be available to users.

Dude - it's open-source and a community-developed language with some - and increasing - commercial support.  I'm not saying that the things you ask for might not be valuable things.  But I'm curious to know from a rational means-ends perspective how you think your chosen means will be helpful in achieving your desired ends.  Do you think that complaining without taking the smallest step towards making things a reality (if you have done so, then I apologise - but your message would have been more effective had you articulated what those steps were) will change things?

> And if there are complaints, hey, it is not "official" ask the guy who's looking into it. Not very professional.

Gesellschaft and gemeinschaft, and open-source is something new.  One can pick only from the options available and those one can imaginatively create.  Suppose we made you dictator of D, but subject to the same constraints that currently exist.  What steps would you take to achieve the ends you desire?

> See, that doesn't really give you confidence in D and it gives you an uneasy feeling. Nothing worse in software development than to be programming thinking "Am I actually wasting my time here?", and of course, you become reluctant to start anything new in D - which is only natural.

Don't use D if you don't want to.  Almost certainly it's not suitable for everyone.  But the opposite of love is indifference.  Somehow you still choose to spend your time here for now.  And since that's the case, I strongly encourage you to think about what little baby steps in concrete ways you can take to be the change you wish to become.

I just spoke with Dicebot about work stuff.  He incidentally mentioned what I said before based on my impressions.  The people doing work with a language have better things to do than spend a lot of time on forums.  And I think in open source you earn the right to be listened to by doing work of some kind.  He said (which I knew already) it was an old post he didn't put up in the end - somebody discovered it in his repo.  He is working fulltime as a consultant with me for Symmetry and is writing D as part of that role.  I don't think that indicates he didn't mean his criticisms, and maybe one could learn from those.  But a whole thread triggered by this is quite entertaining.

September 03, 2018
On Monday, 3 September 2018 at 11:32:42 UTC, Chris wrote:
> On Sunday, 2 September 2018 at 12:07:17 UTC, Laeeth Isharc wrote:
>
>>
>> That's why the people that adopt D will inordinately be principals not agents in the beginning. They will either be residual claimants on earnings or will have acquired the authority to make decisions without persuading a committee that makes decisions on the grounds of social factors.
>>
>> If D becomes another C++ ?  C++ was ugly from the beginning (in my personal subjective assessment) whereas D was designed by people with good taste.
>>
>> That's why it appeals inordinately to people with good taste.
>>
> [snip]
>
> Be that as it may, however, you forget the fact that people "with good taste" who have (had) an intrinsic motivation to learn D are also very critical people who take no bs, else they wouldn't have ended up using D in the first place. Since they've already learned a lot of concepts etc. with D over the years,

> it's technically easy for them to move on to either an easier language or one that offers more or less the same features as D.

I don't think so.  If we are talking about the set of technically very capable people with an aesthetic sense then I don't think easier or feature set in a less beautiful way is appealing.

This is based on revealed preference, because the conversations I have with technically very capable people that know many other languages as well or better than D go like "what compensation are you expecting?  X.  But if it's to write D, I can be flexible" and so on.

Template meta-programming in D is quite simple.  C++ has many of the features that D has.  Therefore it's easy to do template meta-programming in C++, and just as easy for others to read your code in C++ as D?  I don't think so.  Having learnt the concepts in D and that it can be beautiful and easy kind of ruins you for inferior approaches.

BTW I was grumbling about some C# wrapper code written manually.  It talks to a C style API (connected to an internal C++ code base developed before I became involved).  So you have a low level C# side declaration of the C function that returns an exception string by argument.  Then you have a C# declaration of a wrapper function that throws an exception if the exception string is not empty.  Then you have a layer on top that puts the class back together.  Then you have a high level wrapper layer.  Then you have the bit that talks to Excel.

I thought surely there must be decent code generation possibilities in C#.  It's not too bad as a language.  I looked it up.  Microsoft say use HTML templates.  Well, okay... but I'm not sure I like the trade-off of having to do stuff like that versus having to deal with some pain at the command-line now and then.

> So once they're no longer happy with the way things are, they can dive into a any language fast enough for the cost of transition to be low.

You're making an implicit empirical statement that I don't believe to be accurate based on my experience.  I would say if a representative programmer from the D community decides the costs no longer offset the benefits then sure they can learn another language because the representative programmer here is pretty talented.  But so what?

September 03, 2018
On Monday, 3 September 2018 at 14:26:46 UTC, Laeeth Isharc wrote:
> On Monday, 3 September 2018 at 11:32:42 UTC, Chris wrote:

>> [...]

>
> D has never been about smooth experiences!  That's a commercial benefit if you think that hormesis brings benefits and you are not looking for programmers of the trained-monkey, strap a few APIs together type.

It's high time it got a bit smoother if you want people to use it. Is everybody who doesn't use cli and knows all compiler flags by heart a coding monkey? Has it ever occurred to you that people want a smooth experience so they can concentrate on a job and get done with it?

> It's a question of developmental stages too.  I was a late developer as a person, but then I continued to develop into my 30s and perhaps 40s too.  For human beings there are different kinds of people and implicit life strategies and natural fits with niches.  Some are quick to grow up, but stop developing sooner and others mature more slowly but this process may continue long after others are done.  I'm not saying a computer language is like a human being, but it is in part an organic phenomenon and social institutions develop according to their own logic and rhythm in my experience of studying them.

This is not a yoga class.

> D is a late developer, and I think that's because it is a tremendously ambitious language.  What use case is D intended to target?  Well it's not like that - it's a general purpose programming language at a time when people have given up on that idea and think that it simply must be that you pick one tool for the job and couldn't possibly have a tool that does many different kind of things reasonably well.  So the kind of use cases D is suited for depends much more on the capabilities and virtues of the people using it than is the case for other languages.  (In truth in a negative sense that's true also of other languages - Go was designed to be easy to learn and to use for people who didn't have much programming experience).

It's not D's usefulness I'm concerned with, it can do a lot of things. It's just a bit awkward to use in production and there's no reason why things should still be like in 2010.


>
>> [...]
>
> Sure.  I would agree with what you write but say that it's a case of capabilities and hormesis too sometime.  Nassim Taleb told a story about checking into a hotel and seeing a guy in a suit tip the bellboy to carry his bags upstairs.  Later on he saw the same guy in a gym lifting weights (and I think on a Nautilus-type machine which is much inferior to free weights).  So any tool can make you lazy, and yet any tool - no matter how shiny, polished, and expensive - sometimes will break and then if you are afraid of the command line or just very out of practice you can end up utterly helpless.  It's a matter of balance to be sure.

Funny story, but this is not the place for esoteric contemplations.

>> [...]
>
> I didn't find the experience last time I tried to be worse than just going through the Android C/C++ native SDK instructions.  The first time I tried it was quite tough as I struggled to even build the compiler as the instructions weren't quite right.  I disagree about it not being maintainable as it's much easier to keep something you understand and can reason about working, but it's harder to use in the beginning, for sure.
>
> I think that the point for Android and ARM is not the build process but integration with Java APIs.  If you can't figure out a build process that when I tried it mostly just worked and that doesn't have too much dark magic, I fear for how easy you are going to find JNI.  (JNI is fine, but building a D project on Android requires less demanding technical capabilities).

I know JNI, I've connected D with Java (and vice versa) a few times.

>> [...]
>
> You had one or two people who stubbornly devoted considerable parts of their lives to getting D to build on Android.  And instead of saying what a remarkable achievement, and thank you so much for this work, and this is very cool but we really should consider in a constructive manner how to make this easy to use, you are saying I want more!  Fair enough - it's a free society, although I don't think you were ever promised that the Android experience would be something different from what it is.

I never gave out about the guys (I think one of them is Joakim) who made it possible in the end, because without their efforts we wouldn't have anything. I'm just surprised they don't get more full time support to wrap it up nicely.

> But I really am not surprised that people burn out doing open source.  It's very odd to see, because I came back to this world after a long break.  My first 'open source' contribution was to part of Tom Jenning's work on FidoNet in 1989 - an improvement to some node routing table, and in those days people used to be pretty appreciative.  Same thing with Chuck Forsberg who invented ZModem and came to that same conference - people then didn't talk about all the deficiencies but they understood this was a labour of love and the kind of attitude one sees so commonly today I couldn't have imagined.
>
>> [...]
>
> Dude - it's open-source and a community-developed language with some - and increasing - commercial support.  I'm not saying that the things you ask for might not be valuable things.  But I'm curious to know from a rational means-ends perspective how you think your chosen means will be helpful in achieving your desired ends.  Do you think that complaining without taking the smallest step towards making things a reality (if you have done so, then I apologise - but your message would have been more effective had you articulated what those steps were) will change things?

The default answer: it's open source therefore it's under-resourced.

>> [...]
>
> Gesellschaft and gemeinschaft, and open-source is something new.  One can pick only from the options available and those one can imaginatively create.  Suppose we made you dictator of D, but subject to the same constraints that currently exist.  What steps would you take to achieve the ends you desire?
>
>> [...]
>
> Don't use D if you don't want to.  Almost certainly it's not suitable for everyone.  But the opposite of love is indifference.
>  Somehow you still choose to spend your time here for now.  And since that's the case, I strongly encourage you to think about what little baby steps in concrete ways you can take to be the change you wish to become.
>
> I just spoke with Dicebot about work stuff.  He incidentally mentioned what I said before based on my impressions.  The people doing work with a language have better things to do than spend a lot of time on forums.  And I think in open source you earn the right to be listened to by doing work of some kind.  He said (which I knew already) it was an old post he didn't put up in the end - somebody discovered it in his repo.  He is working fulltime as a consultant with me for Symmetry and is writing D as part of that role.  I don't think that indicates he didn't mean his criticisms, and maybe one could learn from those.  But a whole thread triggered by this is quite entertaining.

So the essence of your message is what I've been hearing for years.

1 It's open source, so it  cannot be smooth / reliable / streamlined / consistent.
2. If you complain and want any of the features listed in 1. you're probably just a well-trained monkey. D is only for the chosen few. And maybe that was true in 2010. But it's 2018 and D is losing the edge it had on other languages.
3. Shame anyone who complains, ungrateful little brats!

But it's my own fault. When the D Foundation was founded I really thought that we would soon have something that resembles a good product. I didn't expect the endless discussions about features, and the breakages etc. to continue like back in the day. I thought more effort would be put into packaging D into a good product. Mea maxima culpa.
September 03, 2018
On Monday, 3 September 2018 at 15:23:12 UTC, Chris wrote:
> On Monday, 3 September 2018 at 14:26:46 UTC, Laeeth Isharc wrote:
>> On Monday, 3 September 2018 at 11:32:42 UTC, Chris wrote:
>
>>> [...]
>
>>
>> D has never been about smooth experiences!  That's a commercial benefit if you think that hormesis brings benefits and you are not looking for programmers of the trained-monkey, strap a few APIs together type.
>
> It's high time it got a bit smoother if you want people to use it. Is everybody who doesn't use cli and knows all compiler flags by heart a coding monkey? Has it ever occurred to you that people want a smooth experience so they can concentrate on a job and get done with it?

Yes. It almost sounds like a smooth experience would be a bad thing to have, especially with the classic "you don't need an IDE anyway" speech. Editing experience seems often dismissed as unimportant, when it's one of the first things new users will come across when trying out D. First impressions can matter a lot.
September 03, 2018
On Monday, 3 September 2018 at 15:41:48 UTC, Laurent Tréguier wrote:
> Yes. It almost sounds like a smooth experience would be a bad thing to have, especially with the classic "you don't need an IDE anyway" speech. Editing experience seems often dismissed as unimportant, when it's one of the first things new users will come across when trying out D. First impressions can matter a lot.

Its the same issue why Linux as a Desktop has been stuck with almost no growth. Its easy to break things ( nvidia graphical driver *lol* ), too much is so focused on the Cli that people who do have a issue and are not system users quick run into a flooding swamp.

Too much resources split among too many distributions, graphical desktops etc. Choice is good but too much choice means projects are starved for resources, comparability are issues, bugs are even more present, ...

A good example being the resources going into DMD, LDC, GDC... 3 Compilers for one language, when even well funded languages stick to one compiler. And now some people think its a good idea to have DMD also cross compile because "its not hard to do". No, maybe not but who will do all the testing, what resources are going to spend when things do not work for some users ( and the negative impact on their experience )... Its a long list but people do not look past this. It sounds like fun, lets think / or do it.

Its just so frustrating that a lot of people here do not understand. Most programmers are not open-source developers, they are not coding gods, they are simply people who want things to good smooth. Install compiler, install good supported graphical IDE ( and no, VIM does not count! ), read up some simple documentation and off we go... We are not looking to be bug testers, core code implementer's, etc...

Selfish, ... sure ... but this is how D gain more people. The more people work with your language, the more potential people you have that slowly are interested in helping out.

But when D puts the carrot in front of the cart instead of the mule. Then do not be so surprised that a lot of people find D extreme frustrating and have a love-hate relationship with it.
September 03, 2018
On 3 September 2018 at 18:07, RhyS via Digitalmars-d <digitalmars-d@puremagic.com> wrote:
>
> Too much resources split among too many distributions, graphical desktops etc. Choice is good but too much choice means projects are starved for resources, comparability are issues, bugs are even more present, ...
>
> A good example being the resources going into DMD, LDC, GDC... 3 Compilers for one language, when even well funded languages stick to one compiler.

This is an argument that has been batted to death and rebutted for nearly 2 decades now.

15 years ago, people were complaining that there was only one D compiler.  It is ironic that people now complain that there's too many.