November 02, 2021

On Tuesday, 2 November 2021 at 22:00:34 UTC, Dukc wrote:

>

But you can't conclude from that that projecting strong values correlates strongly with success, or you're committing the Texian sharpshooter fallacy. There are tons of other potential explanations.

There are many factors. One single factor is of course not sufficient.

In the case of Rust, it seems quite clear that early adoption was related to projecting a strong vision. I think we can say the same for Java. It was projected as the next big thing on Internet a long time before it actually was useful.

>

And no, you're not avoiding the fallacy merely by listing a few other succesful languages that also had strong opinions.

We have to consider that there is a landscape of languages and that enthusiastic D users have moved from D to Rust, Zig and Nim. I think that ought to beg some soul searching questions.

November 02, 2021

On Tuesday, 2 November 2021 at 17:27:25 UTC, Dr Machine Code wrote:

>

It got asked on reddit sub but for those that aren't active too, I'd like you opinions. Please don't get me wrong, I also love D, I've used it everywhere I can and I'd say it's my favourite language (yes I have one...) but I'm as as the reddit's OP, trying to understand why it's unpopular. Rust and Go seeming to be getting more and more users. I think it's due to large ecosystem and the big corporations with deep pockets that pushes them. But I'd like to know you all opinions

Personally, I think most of the explanations people give miss the mark. I think D’s issue are mostly engineering. I personally would like to use D, but I keep running into bugs with the compiler. The latest one I’ve hit is this one. Occasionally I give D a good try and really like the language itself, but then run into weird errors like that one. It makes it hard to adopt and recommend.

November 02, 2021

On Tuesday, 2 November 2021 at 22:43:13 UTC, Ola Fosheim Grøstad wrote:

>

In the case of Rust, it seems quite clear that early adoption was related to projecting a strong vision. I think we can say the same for Java. It was projected as the next big thing on Internet a long time before it actually was useful.

It could be that one or both of them did not succeed because of strong opinions, but rather because of the bandwidth to broadcast it. In other words, perhaps an unopinionated language with as much bandwidth to broadcast it's malleability might succeed just as well. And that's just one alternative theory.

Not saying your theory is wrong, but I'm not going to put much weight on it and neither should anyone else, unless you can show some research you're basing your opinions on. And that applies to all forum theories about subjects like this.

> >

And no, you're not avoiding the fallacy merely by listing a few other succesful languages that also had strong opinions.

We have to consider that there is a landscape of languages and that enthusiastic D users have moved from D to Rust, Zig and Nim. I think that ought to beg some soul searching questions.

As if something else was suggested. We are not talking about whether we wish to answer questions about language adoption, we are talking about how they can be somewhat reliably answered, if at all.

November 03, 2021

On Tuesday, 2 November 2021 at 17:27:25 UTC, Dr Machine Code wrote:

>

It got asked on reddit

D was bitten by GC.

November 03, 2021

On Tuesday, 2 November 2021 at 17:35:08 UTC, IGotD- wrote:

>

On Tuesday, 2 November 2021 at 17:27:25 UTC, Dr Machine Code wrote:

>

I think it's due to large ecosystem and the big corporations with deep pockets that pushes them. But I'd like to know you all opinions

Yes, that's a big part of it. If you look at other languages that doesn't have the corporate backing, they are about as popular as D. Also, when something is developed in a proper organization, it also usually means some kind of functional management and a few developers that can do that full time.

Python is kind of a outlier here, that has grown organically.

Because Python/Vue and some other projects is productive and easy to maintain, that is why is popular.

D claim to be "productive", but it not easy to maintain.

November 03, 2021

On Tuesday, 2 November 2021 at 23:47:42 UTC, Dukc wrote:

>

Not saying your theory is wrong, but I'm not going to put much weight on it and neither should anyone else, unless you can show some research you're basing your opinions on. And that applies to all forum theories about subjects like this.

Quantitative science is not very good at answering questions related to design and culture where the context is changing. So you have to make do with qualitative analysis. If you don’t like that, why engage in discussions?

What you say is that we never can find a quantitative foundation for innovation, but that does not mean that we cannot find a qualitative foundation for design. Which leads to better design because we consider more factors.

November 03, 2021

On Tuesday, 2 November 2021 at 23:47:42 UTC, Dukc wrote:

>

Not saying your theory is wrong, but I'm not going to put much weight on it and neither should anyone else, unless you can show some research you're basing your opinions on. And that applies to all forum theories about subjects like this.

>

As if something else was suggested. We are not talking about whether we wish to answer questions about language adoption, we are talking about how they can be somewhat reliably answered, if at all.

Let me share my credentials with you. I am a human and a developer. I have been one for some number of years. I interact with humans who are developers on a weekdaily basis and have done so for over a decade. I guess you could call me a world expert on humans who are developers.

As a world expert on humans, I have noticed that humans don't really like uncertainty. As a human developer who works with developers, I have noticed that human developers aren't super interested in sinking a bunch of time into something that will not provide lasting value. They look at the long-term/Big-Oh value as opposed to the immediate gratification when it comes to development projects.

Based on those two concepts, and virtually ever post I have ever seen about why people leave D, I can come to some conclusions:

  1. There is uncertainty in D. Where is it going? Is it going to support the things I like about it in the future? Is it going to grow? Is it going to die? Will I be able to find an answer to a question that comes up? What IDE should I use? Does it matter which compiler I use?

  2. People are not sure their investment in writing D programs is a secure investment. Will your code still work in a year? Will the language exist in a few years? Are the maintainers going to make some crazy non-backwards-compatible decision that will ruin my application? Will the library I am using go away?

You could call what it lacks a vision. I don't mean a vision that spells out where the language is going or what it's good at, although that can be part of a vision. I think people can accept very little vision if they have some guarantees - some things they can hold on to and make decisions around. These are the guarantees which most people like and which are provided by most popular languages, like: tools will be maintained and fixed if there is an issue, libraries for common tasks will be maintained and available, the language will remain backwards compatible, you can quickly get answers to your questions from a number of sources.

I also think people see a language that is 20 years old with the toolset and libraries it has and assume that this is all the progress that has been made and that progress must be slow. They may not know about all the corpses of libraries and tools strewn along the way. They might think this is it. That is just speculation, though.

If you want to know what people think, I can see two good ways to do it.

The first is to just think of all the reasons to use D. Then think of a specific type of user who those reasons to appeal to. Now ask them to use D and see what they say. Repeat. Do the reasons appeal to them? Do they make up for the unappealing parts of the ecosystem? You can also do this as a thought experiment.

The second is to find repos in the d language that haven't been maintained in a while and reach out to the users and ask them why they left.

In the end, the question is does this solve a problem people have and does it solve it in a way that another tool doesn't? In some sense, yes, but what do you have to give up to get those gains? I think the answer is pretty obvious and it's the reason D is what I always consider first, but not what I usually use.

November 03, 2021

On Tuesday, 2 November 2021 at 17:27:25 UTC, Dr Machine Code wrote:

>

... I'd like to know you all opinions

For me, D is on an one man's island having trouble to cooperate with software components in other languages, due to unfixed bugs for a long time:

-- apache-thrift-d, LDC has build failure, because this bug (logged for 4 months now):

https://issues.dlang.org/show_bug.cgi?id=22083

-- D grpc client cannot talk to Python grpc server, because this bug (logged for a year now):

https://github.com/huntlabs/grpc-dlang/issues/15

BTW, apache-thrift and grpc are the most important two rpc frameworks used in the industry.

November 03, 2021

On Wednesday, 3 November 2021 at 06:08:57 UTC, harakim wrote:

>

really like uncertainty. As a human developer who works with developers, I have noticed that human developers aren't super interested in sinking a bunch of time into something that will not provide lasting value. They look at the long-term/Big-Oh

It is true that developers look for safe choices when picking languages in professional contexts, that basically always mean either a language that is already popular or a very narrow language that is well supported.

As such, small generic niche languages will always look unsafe and developers with (sound) risk aversion will avoid them.

So, we cannot extrapolate too much from what choices people make in professional software development contexts. We should expect that the majority of uptake comes from individuals that have a lot of freedom and can take higher risk.

But the critical adoption is not with average developers. Average developers are essentially consumers that can motivate people to write tutorials and so on (basically an audience), but they do not increase the quality of the eco system. The critical adoption is related to those that are highly skilled programmers that also have programming as their primary hobby. The ones that are willing to both work all day with programming using a cookie cutter language and in addition want to spend their evenings and weekends programming a niche language (+ those that have a lot of freedom in their daytime). Those are the ones that can drive early adoption and build a solid eco system for small languages.

D's major problem is not that it does not have sufficient numbers of "consuming programmers". I think it does. The major problem is that it does not have enough of those hardcore hobbyists. It has not been able to retain enough of them over time.

That is where the vision is very important. And it would also help if the compiler had a better architecture, and some semantic cleanup to bring it more in line with the ideals of computer science (as the most skilled programmers will know what the semantics ought to be, and that can also be a turn off).

Comparing to languages like Go, C# etc does not make any sense, because those languages have reached critical mass. They have so many users that they statistically also have a large number of hardcore programmers (even if that percentage is very low).

A small language needs a higher ratio of hardcore vs average programmers than a language that already has critical mass.

November 03, 2021

On Wednesday, 3 November 2021 at 06:42:05 UTC, mw wrote:

>

On Tuesday, 2 November 2021 at 17:27:25 UTC, Dr Machine Code wrote:

>

... I'd like to know you all opinions

For me, D is on an one man's island having trouble to cooperate with software components in other languages, due to unfixed bugs for a long time:

-- apache-thrift-d, LDC has build failure, because this bug (logged for 4 months now):

https://issues.dlang.org/show_bug.cgi?id=22083

-- D grpc client cannot talk to Python grpc server, because this bug (logged for a year now):

https://github.com/huntlabs/grpc-dlang/issues/15

BTW, apache-thrift and grpc are the most important two rpc frameworks used in the industry.

We need to fix these