D mentioned on Rust discussions site
IGotD-
nise at nise.com
Mon May 25 13:04:42 UTC 2020
On Monday, 25 May 2020 at 11:33:21 UTC, Dibyendu Majumdar wrote:
>
> First is memory safety - I believe the only way to write OS in
> D or Rust is to use unsafe constructs in parts. Arguably this
> can be done in C++ too - mostly use smart pointers for example,
> and make restricted use of unsafe code.
Memory management in OS development is special and differs a lot
from writing normal applications. In C++, you usually don't use
STL at all because it is usually configured for some other
operating system and will not compile at all. Just including
std::shared_ptr will include a lot of other things and
compilation will fail. Second, there are hidden allocations in
the STL containers and you don't want those when writing
operating systems. With operating systems you want to control
every allocation in order to minimize memory use and
fragmentation. Linux is full of "smart pointers" ie. reference
counting but they are done manually. Same would be in C++,
reference counting is done manually. You want to minimize the
increase/decrease of counters in such environment, something you
might not care that much about in applications.
There are other things that you avoid in C++, like std::function
that has hidden allocations. Operating systems developers usually
make a special library that is tailored for such development.
Also forget about exceptions and RTTI.
Right now C++ seems to be the best fit for operating system
development. Extra safety like bounds checking in D is a good
thing but the full feature set of C++ still out-competes D as you
have to use betterC.
The memory safety in for example Rust is just in the way when
writing operating systems. You have to resort to so many tricks
outside the safe language that it is more or less useless. Also
Rust is a highly annoying language when it comes many classical
data structures. D is in a middle spot here but lacks features
like full polymorphism in betterC which still makes C++ a better
choice.
More information about the Digitalmars-d
mailing list