On Friday, 29 June 2018 at 09:25:08 UTC, Mike Franklin wrote:
Please allow me to bring your attention to an interesting
presentation about choosing a modern programming language for
writing operating systems:
https://www.youtube.com/watch?v=cDFSrVhnZKo
It's a good talk and probably worth your time if you're
interested in bare-metal systems programming. The presenter
mentions D briefly in the beginning when he discussed how he
made his choice of programming language.
He shows the following (probably inaccurate) matrix.
Lang | Mem Safety | Min Runtime | Strong Type Syst. |
Performance
C | | x | | x
C++ | | x | | x
C# | x | | x |
D | x | | x | x
Go | x | | x | x
Rust | x | x | x | x
Java | x | | x | x
Haskell | x | | x |
Cycle | x | x | x | x
It appears the deal-breaker for D was the lack of "minimal
runtime". Of course D has -betterC and, with 2.079, a way to
use some features of D without the runtime, but he also goes on
to discuss the importance of memory safety in his application
of the language.
I hope we'll see something competitive with DIP25, DIP1000, and
the `scope` storage class, namely *memory safety without a
runtime*.
I'm currently waiting for 2.081 to reach LDC and GDC, and then
I have a few ideas I'd like to begin working on myself, but I
never have a shortage of ideas, just a shortage of time and
energy.
Enjoy!
Mike
While not necessarily targeting bare metal, I'm very interested
in a working version of @safe dlang. I believe that dlang with
betterC, @safe, C/C++ inter-op and dip1000 will be huge for
replacing C/C++.
Not long ago I tried to create a library in dlang that is coded
betterC and @safe. The idea is to have the library core in dlang
and automatically generated C and C++ wrappers at compile time
for allowing the library to be used from those languages or
others capable to link to the C API.
Unfortunately bugs in betterC and dip1000 stopped progress (most
of where fixed already). So waiting for LDC to catch up and give
it a try again. Also looking fwd to be able to use C++ classes in
betterC.
I think if my library, or others, can make it, we could have a
strong showcase on why dlang is better on so many levels.
The key is focusing on fixing betterC and @safe (dip1000) and
keep quality standards high.
I think you did a great job already in fixing many of the issues,
so thanks!