Rust VS C/C++
There has been a lot of discourse around this topic, many people sharing their opinions and arguing, and I of course need to join. My perspective is that of a hobbyist programmer, who is more or less a beginner in all three of these languages. I'm not going to talk here about Rust in the Linux kernel, only about the languages themselves, specifically about their philosophies.
C and C++
C and C++ don't get in your way. They just let you do anything. This is really great for experienced programmers who know what they are doing, because it lets them get done the things they need to get done with no arguing from the language, no unnecessary fuss.
I see C and C++ as languages that are extremely powerful yet relatively simple, built on the presumtion you, the programmer, know what you are doing. It's easy to get started coding in C, but it takes a lot of time, effort and experience to build stable and safe products. And I think this is a completely valid approach. The language, the tool, assumes that you, the engineer, know how to use it, what its properties are and what things you should look out for or avoid. This way, there is no need for extensive safety features that get in your way all the time, because you simply know the best way to do things.
As I said, this approach is completely fine and clearly has worked to a large extent considering the amount of high quality stuff that has been written in these languages over the years (such as, you know, the Linux kernel). I mean, of course, in the early days, C was kinda the only option, but if the unsafety of C or C++ was a major obsticle that universally barred people from building successful software, we wouldn't be talking about these languages today.
Rust
The C approach of course is not perfect. The assumption that the programmer is this infallible being that always knows what's best, never makes mistakes, is naive at best. At least from my perspective, that is why langauges like Rust exist. Rust takes the approach of C and C++ and completely turns it on its head. It assumes that the programmer is an idiot who needs to be safe guarded at literally every step of the way to ensure they don't make a mistake. Now, even when the programmer isn't a dingus, the safe guards in place don't hurt anything, and ensure that when the experienced programmer eventually does make a mistake, that mistake gets caught before something goes horribly wrong in production.
This isn't accounting for one pretty important thing however. The programmer's sanity. I said earlier that the safe guards in place don't hurt anything which... isn't entirely true. Having to deal with the language constantly treating you like you have never touched computer science isn't the best experience for people who just want to get something done and know how. Sure, it might catch a mistake you make sometime down the line, but is it worth your sanity?
Rust pegging you all the time annoys a lot of developers, and I understand them; not everyone is into that stuff! Jokes aside, when working on a large project where safety and stability are critical (you know, kernels, drivers, security systems, etc), some people might find this amount of pegging, sorry, I mean safe guarding, justified. Yes, it is a pain to code in, and you can feel your sanity slowly withering away, but you are sure that nothing goes wrong. And in some scenarios that is all you care about.
The synthesis
I think, as with many things in life, things are complicated. The right tool for the job depends on, well, the job itself and the person using that tool. If you decide to write some mission critical application for your company in C, you need to be really confident in your skills and have a lot of experience. And you still might not sleep soundly at night because who knows where memory could be leaking. On the other hand, when you write something in Rust, either you are a bottom, or are writting something really important that can never fail. In that case you are willing to undergo a bit of suffering.
Of course, I am not implying that Rust can catch literally any kind of mistake you might make, or that C/C++ secretly leaks memory when you're not looking. Nor I am saying that coding in C is always a joy compared to Rust. Clearly these languages have been created (at least in the case of Rust) with two completely different views on how progamming and the programmer relate. These visions have their upsides and downsides, and it's ultimately your choice (since you're reading this I assume you are a programmer) and your responsibilty to evaluate them for your purpose.
I presonally prefer C/C++ because I do not enjoy getting dicked down because I am fine with learning things and really getting down to how the computer and memory work. Hopefully this little blerp has given you a fresh perspective on the issue.
As for my opinion on Rust in the kernel, idfk. Ask Linus.