Secondo me Torvalds ha ragione, il C è molto più snello e semplice; il C++ è una oscenità. Specialmente quando si tratta di scrivere un kernel: l'exception handling di C++ è uno scandalo, e se lo è anche per te e sai che non lo userai, perchè utilizzare un linguaggio che te lo fornisce, quando puoi utilizzare un linguaggio più semplice che te lo priva?
Sì, però tieni conto che ho volutamente citato solo un pezzo del suo messaggio.
Lui lascia intendere STL e Boost non sono portable e non sono stabili, ma è oggettivamente falso in un contesto puramente generico. È un'assunzione valida quasi solo se si parla di programmare il kernel di un sistema operativo, ma per qualsiasi altra cosa sia STL che Boost sono veramente lo state of the art. Per git ha scelto il C perché
"efficiency was a primary objective" e anche il C++ era troppo high level, ma mercurial (il diretto concorrente di git) è scritto in python. Anche
"C++ compilers are not trustworthy" è una frase decisamente azzardata: magari non lo erano nel '92, ma 25 anni dopo mi sembra una frase eccessiva anche se ti metti a programmare un kernel.
Per GCC hanno scelto di passare dal C al C++ (
link) e già questo fa riflettere.
Personalmente non sono un fan dell'exception handling, pochi linguaggi hanno questo sistema esposto nel modo in cui piace a me, quindi non sarò io a difendere questo sistema, però "l'exception handling di C++ è uno scandalo" è una frase che va motivata. Sia STL che Boost fanno un uso sensato delle eccezioni e mi fa solo piacere sapere che non sono over-utilizzate come in Java.
Molti dei ragionamenti che fa sono relativi a quello programma lui, ma un kernel non è il tipico progetto che il programmatore medio si mette a scrivere. Quindi buona parte del ragionamento fatto da Torvalds non è rilevante per la domanda fatta da C3n21.