www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Is D really terrible for web?

reply RexFactorem <damiangil ymail.com> writes:
I'm currently learning D. I'm coming from JS framework saturation 
looking for a performant and powerful breath of fresh air. Did 
C++ back in the day and love the language, but not the language 
surface, especially now than I'm a solo dev.

So I set my claws onto D.

I like to read D code in the wild to get familiar with 
production-level code, but I stumbled across a repo compared 
languages and stated D really sucks for Web, which is my main 
use-case as I envisioned D fit a nice spot between C++ power and 
Erlang concurrency with ease of coding, through Vibe.d. (I may be 
wrong. Again, I'm still just a learner.)

This is the repo in question: 
https://github.com/phillvancejr/Cpp-Go-Zig-Odin?tab=readme-ov-file

It's kind of old, so I'm hopeful it no longer holds true, if 
that. But I find it hard to find the current state-of-things, so 
I ask here. Yes, I know it focuses on WASM, but I don't know if 
this annoyance translates to other web-related uses since many of 
the projects I found on GH are a few years old, as I don't want 
to feel limited to "do this, not that".

Here is the quote from the repo:


 we're just talking about Desktop without web support. D's dstep 
 tool and importc language feature make interop with C pretty 
 easy. It has componet wise array operations similar to Odin 
 which is nice. For me the big problem with D is that its wasm 
 support is terrible. You can really only use it with betterC 
 which is D's limited mode that restricts it to an enhanced C 
 subset. When I was asking questions about using D's betterC 
 with wasm one discord user kept refering to it as worse D, 
 which might sound negative but is 100% accurate. Many of the 
 things that make D good don't work in better C. Overall using D 
 on desktop is great, but its terrible for the web and wasm.
Thanks and kudos for making such an elegant language.
Nov 02
next sibling parent monkyyy <crazymonkyyy gmail.com> writes:
On Sunday, 2 November 2025 at 17:13:27 UTC, RexFactorem wrote:
 I'm currently learning D. I'm coming from JS framework 
 saturation looking for a performant and powerful breath of 
 fresh air. Did C++ back in the day and love the language, but 
 not the language surface, especially now than I'm a solo dev.

 So I set my claws onto D.

 I like to read D code in the wild to get familiar with 
 production-level code, but I stumbled across a repo compared 
 languages and stated D really sucks for Web, which is my main 
 use-case as I envisioned D fit a nice spot between C++ power 
 and Erlang concurrency with ease of coding, through Vibe.d. (I 
 may be wrong. Again, I'm still just a learner.)

 This is the repo in question: 
 https://github.com/phillvancejr/Cpp-Go-Zig-Odin?tab=readme-ov-file

 It's kind of old, so I'm hopeful it no longer holds true, if 
 that. But I find it hard to find the current state-of-things, 
 so I ask here. Yes, I know it focuses on WASM, but I don't know 
 if this annoyance translates to other web-related uses since 
 many of the projects I found on GH are a few years old, as I 
 don't want to feel limited to "do this, not that".

 Here is the quote from the repo:


 we're just talking about Desktop without web support. D's 
 dstep tool and importc language feature make interop with C 
 pretty easy. It has componet wise array operations similar to 
 Odin which is nice. For me the big problem with D is that its 
 wasm support is terrible. You can really only use it with 
 betterC which is D's limited mode that restricts it to an 
 enhanced C subset. When I was asking questions about using D's 
 betterC with wasm one discord user kept refering to it as 
 worse D, which might sound negative but is 100% accurate. Many 
 of the things that make D good don't work in better C. Overall 
 using D on desktop is great, but its terrible for the web and 
 wasm.
Thanks and kudos for making such an elegant language.
opend merged the wasm patch, upstream has not; using the gc will probably create memory leaks but it compiles *without betterc* meaning you can use phoboes even if it imports gc code(and it will) kaps "parin" has got wasm build instructions and is based on raylib, find the opend discord link if your trying to use the toolchain, its running but a bit of a mess. I think wasm wont actually be important but it may replace flash for small video games.
Nov 02
prev sibling next sibling parent Kapendev <alexandroskapretsos gmail.com> writes:
On Sunday, 2 November 2025 at 17:13:27 UTC, RexFactorem wrote:
 BetterC... worse D...
First, ignore the people that give cute names to D subsets. They usually do it for fun. Ok, they also mean it a bit, but anyway. It's better to form your own opinion about something. Now, pro tip/opinion/rant from someone that uses the compiler flag called BetterC. It has one or two weird parts, compared to just doing manual memory management without this flag, but overall it's fine and does the job. You should only use it when you have a good reason for it. It's not just a "no GC" or a "manual memory management" flag.
Nov 02
prev sibling next sibling parent Kagamin <spam here.lot> writes:
On Sunday, 2 November 2025 at 17:13:27 UTC, RexFactorem wrote:
 Here is the quote from the repo:


 we're just talking about Desktop without web support. D's 
 dstep tool and importc language feature make interop with C 
 pretty easy. It has componet wise array operations similar to 
 Odin which is nice. For me the big problem with D is that its 
 wasm support is terrible. You can really only use it with 
 betterC which is D's limited mode that restricts it to an 
 enhanced C subset. When I was asking questions about using D's 
 betterC with wasm one discord user kept refering to it as 
 worse D, which might sound negative but is 100% accurate. Many 
 of the things that make D good don't work in better C. Overall 
 using D on desktop is great, but its terrible for the web and 
 wasm.
That's written in the Graphics section, so it's about OpenGL and wasm (web graphics) support. Since he was disappointed with wasm support, he didn't explore D further.
Nov 02
prev sibling parent Sergey <kornburn yandex.ru> writes:
On Sunday, 2 November 2025 at 17:13:27 UTC, RexFactorem wrote:
 languages and stated D really sucks for Web, which is my main 
 use-case as I envisioned D fit a nice spot between C++ power 
 and Erlang concurrency with ease of coding, through Vibe.d. (I 
 may be wrong. Again, I'm still just a learner.)
So what is your main goal? Can you elaborate a bit more? Because web is very different. Normal web, high load web, cloud things (azure,aws,gcp), wasm, low level network protocols - all "web", but very different areas. In some D has better standings, in others - worse. So it really depends on your tasks.
Nov 02