Lots of core UNIX and Linux projects are. C++ is not liked by a lot of low level FOSS community. I think Rust is going to get further into these areas. I know C++ well but prefer C. I know plenty of others who feel the same.
”C++ is a horrible language. It’s made more horrible by the fact that a lot
of substandard programmers use it, to the point where it’s much much
easier to generate total and utter crap with it. Quite frankly, even if
the choice of C were to do nothing but keep the C++ programmers out,
that in itself would be a huge reason to use C.”
Torvalds just really dislikes C++. He’s gone on the record saying that he thinks it’s just not a good language. In his own words “C++ is just a waste, there is no design at all, just adding some scum on top of C.”
The STD is maybe the only good thing C++ has over C, and even that is awful compared to other language’s standard libraries.
I can’t name another good thing C++ has. Maybe templates. C++’s reliance on inheritance for polymorphism is awful (should’ve gone with interfaces/traits).
Not to mention the mess with all the different types of constructors that must always be implemented.
It’s just a bunch of bad design choices added on top of an old outdated language.
Is there some lore about this I don’t know?
There is no C++ allowed in the Linux kernel and Linus has gone on several major rants about how terrible a language it is.
Is it all C?
There’s assembly and makefiles too
Less of a joke answer, there has been work to allow Rust bindings for drivers.
According to the github analysis, the kernel repository is:
So yeah, its basically all C, plus a tiny bit of assembly for very low level bootstrapping and some helper scripts.
Lots of core UNIX and Linux projects are. C++ is not liked by a lot of low level FOSS community. I think Rust is going to get further into these areas. I know C++ well but prefer C. I know plenty of others who feel the same.
I’ve read that they are writing parts of the kernel in Rust
Yes, I think Rust is a better C++ and will replace it in many places. Though all three will be around for ever to be honest.
Yes, first Rust code was released in 6.6 I think and MS also started implementing Rust code in the Windows kernel.
Rust is certainly interesting. I think it’s the C++ we need.
”C++ is a horrible language. It’s made more horrible by the fact that a lot of substandard programmers use it, to the point where it’s much much easier to generate total and utter crap with it. Quite frankly, even if the choice of C were to do nothing but keep the C++ programmers out, that in itself would be a huge reason to use C.”
http://harmful.cat-v.org/software/c++/linus
Torvalds just really dislikes C++. He’s gone on the record saying that he thinks it’s just not a good language. In his own words “C++ is just a waste, there is no design at all, just adding some scum on top of C.”
he’s not wrong
In the specific use case of kernel programming, maybe. But the Standard Template Library is awesome.
The STD is maybe the only good thing C++ has over C, and even that is awful compared to other language’s standard libraries.
I can’t name another good thing C++ has. Maybe templates. C++’s reliance on inheritance for polymorphism is awful (should’ve gone with interfaces/traits).
Not to mention the mess with all the different types of constructors that must always be implemented.
It’s just a bunch of bad design choices added on top of an old outdated language.