5 ms·
D has been around for 21 years. It has had a compiler in the gcc project (gdc) for four years. It debugs easily enough under gdb. Several editors support D s
by ttkciar 4y ago
D has been around for 21 years. It has had a compiler in the gcc project (gdc) for four years. It debugs easily enough under gdb. Several editors support D syntax (including geany and vscode). It has quite a few libraries (though its interoperability with C libraries has muted native D library development somewhat), centralized at https://code.dlang.org/ https://code.dlang.org/
Are there specific parts of the ecosystem you worry about not being mature?
As for it being a bit esoteric, yes, it's not a very widely known language, though I'm not sure why. I fell in love with it in 2018, and it has thoroughly spoiled me for writing C.
- Conscat 4y agoOne big issue with D compared to Rust for performance-oriented code is the lack of move semantics. Rust and C++ idiomatically almost never rely on copy-on-write, whereas D so far has a lot of it. I'm not sure how much this matters for kernel modules, but I imagine that it is something users would consider. I had seen some proposals for move semantics in D, so for all I know this is under works right now.
- destructionator 4y agoD rarely has copy on write. It will just plain copy certain types on assignment though so perhaps that's what you meant.
- p0nce 4y agoC++ code has a lot of copies actually.
- vlovich123 4y agoMaturity in a systems programming sense is different. Rust had a lot of effort pored (and still going) into the nostd variant to be used in bare metal applications like microcontrollers and kernels. Does D have that same level of formalism? On a more serious note, I’m skeptical D would take. It seems like Rust has captured mind share and already has ongoing substantial work integrating it into the kernel (+ it’s the first and only non C language in kernel mainline). Given that context, I don’t see the motivation that works spur a similar level of support from kernel maintainers.
- spookie 4y agoI'm sorry, but shouldn't we critique Dlang itself instead of the constant comparisons with Rust? Dlang has had significant work poured into it, and the project has delivered a quality language with safety in mind. I don't mean to be defensive, but these threads always seem to ask the same question, it's boring at this point.
- vlovich123 4y agoI think it's fair game to discuss Rust in this context since there's a major effort underway to support writing in-kernel drivers in Rust. Unless you think the kernel will be a bazaar of languages, then it's useful to think about which language is the most likely to "win".
- pjmlp 4y agoThere are other OSes out there where D could eventually make a mark. Naturally the whole issue is that there is no big movement regarding writing OSes in D for that to matter anyway. Better luck using TinyGo, Java, .NET or Oberon in bare metal workloads (where runtime plays the OS role), as there are a couple of products for them, than D.
- spookie 4y agoI think it would be of value, to a degree, if the kernel supported multiple languages. As some languages are better suited for some tasks. This implies comparing them, so I understand your point now.
- ttkciar 4y ago> Rust had a lot of effort pored (and still going) into the nostd variant to be used in bare metal applications like microcontrollers and kernels. D has had "dcompute" since 2017, for native execution on GPUs and other accelerators. People have been writing D for microcontrollers since at least 2011, possibly earlier. D is fairly mature in the systems space. > I’m skeptical D would take. Maybe, maybe not. Some languages "click" better than others for individual programmers. It's good to have options. > it’s the first and only non C language in kernel mainline Do you foresee it being the only non-C language used in the kernel forever?