Kernel-Entwickler sind oft die Art von Leuten, die sich glücklicher fühlen, wenn aus der Quelle sofort ersichtlich ist, was der Code tatsächlich tut.
C ++ hat viel mehr Funktionen, die verbergen, was der Code bewirkt, als dass er durch einfachen C-Code verdeckt wird: Überladungen, virtuelle Methoden, Vorlagen, Verweise, Throws ... C ++ hat auch wesentlich mehr Syntax, die Sie beherrschen müssen, um das C ++ überhaupt zu verstehen Code mit ihm.
Ich denke, Power of C ++ ist ein sehr mächtiges Werkzeug, um Bibliotheken und Frameworks zu erstellen, die dann die Anwendungsentwicklung zum Kinderspiel machen. Sehr oft ist der C ++ - Anwendungsentwickler in den mit Vorlagen gefüllten Innereien einer Bibliothek völlig verloren, selbst wenn er sehr kompetent darin ist, Anwendungen mit dieser Bibliothek zu erstellen. Das Schreiben einer C ++ - Bibliothek ist eine sehr herausfordernde Programmieraufgabe, die nur durchgeführt wird, um ein hervorragendes Framework zum Nutzen der Anwendungsentwickler bereitzustellen. C ++ - Bibliotheken sind intern nicht einfach, sie sind (oder können es sein ...) aus Sicht der Anwendungsprogrammierer nur leistungsstark und dennoch einfach.
Die Kernel-API kann jedoch keine C ++ - API sein, sondern muss eine sprachunabhängige API sein, sodass die meisten nützlichen Dinge in C ++ an dieser Schnittstelle nicht direkt verwendet werden können. Darüber hinaus ist der Kernel nicht wirklich in "Bibliotheks" - und "Anwendungs" -Teile unterteilt, die unabhängig voneinander entwickelt wurden, wobei logischerweise mehr Aufwand für eine Bibliothek erforderlich ist, um die Erstellung einer Vielzahl von Anwendungen zu vereinfachen.
Außerdem sind Sicherheit und Stabilität in einem Kernel wichtiger, und virtuelle Methoden sind viel dynamischer und daher viel schwieriger zu isolieren und zu überprüfen als einfache Rückrufe oder andere C-ähnliche Mechanismen.
Kurz gesagt, obwohl Sie natürlich jedes C-Programm einschließlich eines Kernels als C ++ schreiben können, wird der größte Teil der Leistungsfähigkeit von C ++ im Kernel nicht gut genutzt. Und viele würden argumentieren, dass Programmiertools Sie daran hindern sollten, Dinge zu tun, die Sie nicht tun sollten. C ++ würde das nicht.