Has D failed? ( unpopular opinion but I think yes )

Nierjerson Nierjerson at somewhere.com
Fri Apr 12 17:59:49 UTC 2019


On Friday, 12 April 2019 at 16:45:04 UTC, H. S. Teoh wrote:
> On Fri, Apr 12, 2019 at 03:25:05PM +0000, Nierjerson via 
> Digitalmars-d wrote:
>> On Friday, 12 April 2019 at 14:30:53 UTC, H. S. Teoh wrote:
> [...]
>> > Personally, I couldn't care less about popularity. After 
>> > what I've seen in the industry over the past 2-3 decades, 
>> > I've become very cynical about popularity.  What I *do* care 
>> > for is a language with strong technical merit. D has that, 
>> > to some extent -- I'm not going to pretend D is perfect 
>> > either, as I do find a lot to be desired in it.  But it's 
>> > much better than the alternatives I've tried, so for the 
>> > time being, it's my language of choice.
>> > 
>> > But obviously, YMMV.
>> > 
>> 
>> And this is the problem. Those hard core users like yourself 
>> that pretend that popularity doesn't matter. What are you 
>> going to do in 10-15 years(depending on how old you are) when 
>> Walter is dead(isn't he like 70 now?) or simply cares even 
>> less about D and moves on to dying?
>
> There are enough of us around to keep it going without Walter, 
> and that number is growing.  It may not be growing as fast as 
> you might want, but it's growing.

Even one man can "keep it going" in theory. In practice that is 
now how it works. When the "team leader" goes everything almost 
always falls apart. In war, if the commander gets killed there 
are specific processes to deal with the inevitable outcome of the 
company being obliterated. This is why their are chains of 
command and shut. You won't be able to keep anything together in 
any significant way without some organized structure. It is pipe 
dream because EVEN if it were true, it is only true in theory or 
in some astronomical chance. In reality, that is, when we want to 
actually not take huge risks, things work a certain way.

It has nothing to do with D specifically, it is true in general 
for all things. It is not that the outcome is always known but 
that why go down that path? It doesn't have to go that way and it 
will only be a tough road. There is no point except to be lazy 
and ignorant. Proper planning is what has proven itself time and 
again in all complex things. No need to throw it out the window 
just because you guys want to gamble.


>
>> Popularity is what grows something.  You might not care about 
>> it, but without it D is definitely dead and it is just a 
>> matter of time.
>
> Bold statement for a language that has a good number of 
> companies using it in production, with a small group of 
> dedicated contributors.  Yeah, it may be no C++ megalith, but 
> honestly? I can live with that. In fact, I like it.  Popularity 
> usually also equates to lowering your standards to the lowest 
> common denominator.  I've seen enough of that in my career to 
> be extremely cynical about it.

Seriously? You do realize that the companies that use D are a 
drop in the bucket compared to most other popular languages? 
Also, most of these companies would drop D in a heart beat if 
something better came along to make them more money.

Look, this is what you are saying: "Too much `popularity` is bad 
because of X, I've seen it in the past so we won't have any 
popularity".

That makes no sense. How bout you find a better way to do it? I 
agree that popularity in and of itself is not necessarily good, 
but the right popularity is the best. What if D had a community 
of 1M programmers that were identical to you? Would you not 
accept it because it's too popular? Or would you all start making 
D the most amazing language and compiler that you can conceive of?

You are throwing out the baby with the bath water. There has to 
be a balance in everything. To choose an extreme is idiotic all 
virtually all cases no matter hat the extreme is. Choosing one 
extreme over some other is just as bad as choosing another 
extreme over some other extreme. [i.e., saying "My extreme is 
better than yours" is a destructive statement unless it can be 
proved mathematically to be true or beyond all meaningful doubt]

>
> [...]
>> Once the popularity of D = 0 D is dead. That is a fact. Do you 
>> want D dead?  or do you like playing risky games? If you think 
>> D is so great then why would you not want it to be more 
>> popular? If D is better then C++ in every regard then why 
>> would you not want everyone using D instead of C++?
> [...]
>
> Ah, the good old strawman argument. I never said I don't *want* 
> D to be popular.  I said that popularity is irrelevant *to me*.
>  I want D to grow *by technical merit*, not than by pandering 
> to whatever fashion trend the masses are clamoring for today 
> that will inevitably change again tomorrow. Popularity is not a 
> reliable measure of technical merit.

It is not a straw man. It is fact. I didn't say you wanted it, 
you might not verbalize that or even believe that is what you 
want, but actions are what counts. If your actions causally lead 
to a specific outcome(and all things are cause and effect) then 
you wanted it whether you realize it or not.

For example, if a girl has sex with a boy not realizing that she 
will get pregnant and it will potentially ruin her life, she has 
set up a domino effect and the outcome, while not 100% is 
statistically determinable... and if she ignores that she will 
become a statistic.


Do you agree with me that if no one uses D in any way shape or 
form, by I which I mean popularity(t) = 0 for all t > T, then D 
is what we could say is "dead"?

If so then D's popularity is related to it's heath. You can't 
argue that and if your logic does not in some way conform to the 
constraint above, you will almost surely be hurting D than 
helping it.

My point IS NOT that D should just base everything on popularity. 
That is not what I'm arguing at all. What I am arguing is that 
without some focus on it D is doing far more damage than good and 
eventually it will catch up with it. I'm also not saying that D 
has 0 focus on "popularity", I'm simply saying that there is a 
very significant likelihood that D's lack of focus on building 
community is significantly hurting it's growth(growth in it's 
capabilities that all D users can benefit from, including you).



>
>> See, it is not that D itself is a bad language, it is that the 
>> whole atmosphere surrounding it, how it is managed, is the 
>> problem. Some things are done well but others poorly, 
>> eventually those things that are neglected will catch up 
>> because the community seems to care not one bit about them.  
>> The cracks are getting bigger and bigger, I'm sorry you can't 
>> see them.
> [...]
>
> To be honest, I've seriously thought about forking D on several 
> occasions.  I haven't gone through with it yet, for many 
> reasons.  But if push comes to shove, I'm ready to take it on, 
> and I'm pretty certain that I'm not alone.
>

And that alone proves there is something fundamentally wrong with 
D's community. Why would you ever even think about that if the 
community was properly functioning?

I have not only thought about forking D but writing my own 
compiler. The problem is I know I'm not willing to put in the 
effort to make it successful because it is just too much work for 
me(and I'm real with myself about it). I've had many long years 
been wanting a compiler that I works the way I believe compilers 
should, take all the short comings of all the languages I have 
learned and with all the things I have learned and try to make 
something better. But it is a long process because I would go in 
to uncharted territory. I don't believe in having to follow the 
status quo and I'd solely write the compiler for myself. It would 
be a 10-20 year project, an investment I am not willing to make.

Imagine this: Take any aspect of D, be it an audio library, an 
IDE, debugging, whatever... imagine it was as far ahead of what 
else is out there in the same way it is ahead with it's meta 
programming. This is how D should be as a goal. Rather than "Our 
meta programming is light years head of everything else but 
everything else we do is light years beyond anything else". I 
realize it is a pipe dream, but without dreaming reality never 
changes.

It's as If D one a trophy for it's meta programming and said "We 
won! Time to go home!" and stopped competing in everything else.

I really believe the leadership believes there are only a few 
aspects of D that matters like it's meta programming or it's 
stability and that everything else is irrelevant. I think they 
believe this precisely in the same way that you and others 
believe in D: "It works for me"... so, audio people are ignored 
because the leadership doesn't do audio, so it's irrelevant do 
them. Graphics are ignored because the leaders only use and write 
programs and code in text. These things then only get any support 
from individuals that say "Man, I love D but I need X" and so 
create X themselves. This approach then creates a huge mess for 
many reasons(maintenance, integrability, cohesiveness, etc).

I'm not trying to pain the picture that D sucks all around, just 
that D could do a lot better in it's weakest areas instead of 
essentially ignoring them. Remember, something is only as strong 
as it's weakest link. It is tautological. It can't be argued. It 
means that if D wants to be strong it should work on it's weak 
points and not sweep them under the rug.














More information about the Digitalmars-d mailing list