Remember if you are talking at the HW-level you don't have the luxury of libraries and I doubt Go/Rust would be of any help unless you build the ecosystem for it. Something like the implementation of coreutil binaries can benefit from Go/Rust but not the OS-code itself.
You don't have to believe me, just write a reasonably complicated algorithm (say.. a naive SAT solver) with both C++ and Rust (or Swift or $NEW_LANG) and compare the speeds.
1. Rust : http://benchmarksgame.alioth.debian.org/u64q/compare.php?lan...
2. Swift : http://benchmarksgame.alioth.debian.org/u64q/compare.php?lan...
As for a SAT solver, I was not speaking out of my ass. Here is one try that got a fair bit of attention. https://github.com/mishun/minisat-rust
Manually managing memory is important when you are writing real-time software like operating systems. You don't want the garbage collector to kick in without being asked when you trying to complete a task within a deadline
C 49.0% C++ 45.4% Makefile 2.9% Assembly 1.1% Shell 0.8% Objective-C 0.4%
https://github.com/fuchsia-mirror/magentaThe only thing I dislike about Linux is that it drags gcc with it, for this you need g++ too.
Once you shrink C++ down to such a subset, it is substantially less heavy. I do not think I am qualified whether that makes it a better choice, but means there are examples of fairly successful operating systems whose kernels are written in C++.
I've only used C++ in an academic setting.
> Once you've striped all those features from C++, what's left to differentiate it from C?
Not much, I suspect. You can declare variables anywhere instead of just the beginning of a block, you can use references, and C++ handles const-ness much better than C. Function and operator overloading is a double-edged sword, but it is possible to use them in a way that makes code easier to write, read, and maintain. C++ being C++, there are surely a bunch of things I miss.
But yes, without all the advanced features the gap between C and C++ shrinks significantly,
Anyway, Google is supposed to have good c++ devs, with experience coding together, so this is not a problem for them, i think. Another issue is that the compilation is slow compared to C, but i don't think its an issue for Google either.
[edit] Yes, binary size can be a problem too, forgot about that. But if you only use basic libraries, i don't think your binary will grow that much, right?