Plan for D

JN 666total at wp.pl
Mon May 17 19:32:14 UTC 2021


On Thursday, 13 May 2021 at 20:57:13 UTC, dogman wrote:
> Question to the core team. Whats the plan and roadmap for D ?
> a. are we planning to keep D just as a hobby language or a real 
> contender for industry use. Despite being complex, rust has 
> started to get adopted in industries. Whats our plan ?

Selection bias is in play here too. Rust is getting more popular, 
previously Go was starting to gain popularity also, but just as 
many languages succeed, many fail to reach the expectations. You 
have languages like Nim or Crystal, which have their own 
fanbases, but are relatively unknown in the general programming 
population (also, most programmers aren't really familiar with 
Rust/Go either). D is also in that category. You also have many 
languages that failed completely to gain attention and are dying 
away in programming language limbo.

But you also have languages which should succeed by most metrics, 
and yet they don't. Look at Dart. It's a well designed language 
(it's one of my favorite languages), it has good IDE support, it 
has Google behind it, and yet it never reached wide adoption. 
Outside of Flutter, the usage of Dart is very limited, and 
TypeScript took most of those usecases instead.

As for Rust, most people aren't flocking to Rust for memory 
safety or for GC-less memory management. Just like most people 
aren't flocking away from D because of GC (even if they claim 
it's because of GC). For many people, unless doing low level 
programming, memory management is more of an implementation 
detail.

Borrow checker isn't attracting people to Rust. It's a bonus, 
catching more bugs during compile time, but it's not the main 
feature. The main features that attract people to Rust is the 
cohesive story, good vision and a good ecosystem of tooling, 
libraries and bindings. Just like people did webdev with Python 
not because Python is great for webdev, but because it's good 
enough and easy to get started. With lots of libraries available, 
you can pip download flask, pip download pandas and make some 
nice dashboards within hours. Rust is similar to that extent. 
There are many packages, and you can expect many libraries to be 
existing, or at least if not existing, then the bindings to C/C++ 
libraries are available to cover that gap.

Both languages represent somewhat different mentality. Rust has a 
core team that is paid to work on Rust. These people can work on 
the design of the language and can force the decision whenever a 
problematic topic comes. D is mostly a volunteer project and 
doesn't have that luxury. Every problem that comes up needs a 
consensus to overcome. And in some cases the consensus is hard to 
get.

It is a chicken and the egg problem. Because D isn't very 
popular, it doesn't have the same level of ecosystem, and because 
it doesn't have the same level of ecosystem, it doesn't get 
popular. On the other hand, not every language needs to hit it 
big. I am satisfied with the state of the D and I've seen great 
improvements over the years. Dub really improved the ergonomics 
of using D, things like Code-D work fairly well (and get better 
every year also).

Sure, we can switch the language from garbage collection to 
manual memory management or reference counting. Will it change 
much? I doubt it, the people complaining about GC would just 
complain about RC. We would throw the existing ecosystem through 
the window, and there would be new bugs that come from the 
improvements.

Personally, I think what should happen is narrowing the scope of 
the language. I actually wish D went with GC fully, without 
giving escape hatches in form of @nogc. We shouldn't be chasing 
borrowing. Did that ever go anywhere? I don't even know if 
dip1000 works now, it's all hidden somewhere in spec documents. 
We don't have dozens of paid developers working on D full time. 
We have to manage with the resources we have, and spreading them 
thin over the language is not the optimal usage of such resources.




More information about the Digitalmars-d mailing list