D needs to learn from competing languages and ecosystems.
Claudio Constantin
claukonstantin at gmail.com
Tue Sep 15 12:21:34 UTC 2026
On Tuesday, 15 September 2026 at 11:31:38 UTC, Dennis wrote:
> Thanks for your perspective.
>
> On Tuesday, 15 September 2026 at 10:57:26 UTC, Claudio
> Constantin wrote:
>> People expect something better, when you don't provide it,
>> they don't tell you and carry on.
>
> I fully agree.
>
>> What I think D needs:
>
> The things you list exist to some extent:
>
>> - Toolchain manager, its own version of uv, rustup, dotnetup,
>> bun.
>
> https://dlang.org/install.html
> https://github.com/dlang/dub
>
>> - An official LSP, owned by the Dlang project, developed in
>> tandem with the compiler that should be easily managed.
>
> Giving dmd an LSP interface is work in progress.
> Currently there's only the separate
> https://github.com/Pure-D/serve-d
>
>> - A tree-sitter parser, or at least adopt a community one, it
>> is expected to have one nowadays.
>
> https://github.com/gdamore/tree-sitter-d
> https://github.com/CyberShadow/tree-sitter-d
>
>> - Extensions for popular code editors and IDE.
>
> https://github.com/dlang/visuald
> https://github.com/pure-d/code-d
> https://plugins.jetbrains.com/plugin/8115-d-language
>
>> - An official book you can read online, both Rust and Go
>> provide their own.
>
> https://dlang.org/book/
> https://tour.dlang.org/
>
> I'm aware these may still leave a lot to be desired (e.g. hard
> to find/setup, outdated, missing features) and have my own
> ideas on how to improve that, but do you have specific feedback
> related to these as well?
Thank you for your response.
From what I gather, my proposals exist in a scattered and
possibly incomplete(?) form.
dub is a package manager and build system at the *project* level.
My idea of a toolchain manager would look like something you can
install by running a shell script (people have strong opinions on
this) like rustup, uv, Deno, etc. do.
Let's call it `dup`, dup in this case would be the recommended
way of installing DMD, LCD, dub, the LSP, formatter and other
tools.
It would be in charge of managing the installations, updating
them, handling environment variables and so on.
Some people don't like that, that's ok, we're aiming for the
majority here.
Regarding the LSP, I shouldn't undermine anyone’s work, but
serve-d *isn't* a great experience, the momentum simply isn't
there.
My hope for the future is that an official LSP under
https://github.com/dlang will exist and is properly supported.
The same with IDE extensions, which should be much easier to
maintain once the right pieces are in place (extensions can use
the LSP interface).
A tree-sitter parser should be owned, in my opinion, as well.
Consolidate and streamline, ensure community effort is focused on
something that'll matter.
It's a big ask, but a scattered ecosystem is a point of
frustration.
The book and tour are great, especially the tour, shouldn't have
missed it.
I'll repeat myself, the ideal would be a single entry point
(toolchain manager) to the entire language and its tooling.
OWN YOUR TOOLS, IT'S VERY IMPORTANT!
It should be apparent where time and effort should go.
More information about the Digitalmars-d
mailing list