The problem with low level languages is they don't live in isolation.
As someone who worked on a large project in Ada, you'll need to at some point use the OS and its libraries which for Unix is in C. Want to network or get a OS semaphore? C. Many languages support this call to the C library functionality, but it always seems to force a lot of things back into the C way of doing things.
Maybe with a runtime (Java!, or ada tasks) this is abstracted away, but its still there..
Many of the libraries you'd want to use are already ported or binary compatible (just need a header file) with D. Given that a fibre-based web framework has been written with it, and that it can use pointers natively, there's not a whole lot you can't do with it. Even writing bare metal code should in theory be doable with some work.
Comments
The problem with low level languages is they don't live in isolation.
As someone who worked on a large project in Ada, you'll need to at some point use the OS and its libraries which for Unix is in C. Want to network or get a OS semaphore? C. Many languages support this call to the C library functionality, but it always seems to force a lot of things back into the C way of doing things.
Maybe with a runtime (Java!, or ada tasks) this is abstracted away, but its still there..
Many of the libraries you'd want to use are already ported or binary compatible (just need a header file) with D. Given that a fibre-based web framework has been written with it, and that it can use pointers natively, there's not a whole lot you can't do with it. Even writing bare metal code should in theory be doable with some work.
Alexandrescu talked about D at Boostcon a few years back, and as I recall he was planning to make it compatible with C system libraries.
D has been compatible with C libraries since the beginning.