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