Les développeurs de noyau sont souvent le genre de personnes, qui se sentent plus heureux, quand il est immédiatement évident à la source, ce que fait réellement le code.
C ++ a beaucoup plus de fonctionnalités, qui cachent ce que fait le code plus que le code C simple: les surcharges, les méthodes virtuelles, les modèles, les références, les lancers ... C ++ a également beaucoup plus de syntaxe que vous devez maîtriser pour même comprendre le C ++ code en l'utilisant.
Je pense que la puissance de C ++ est un outil très puissant pour créer des bibliothèques et des frameworks, qui font ensuite du développement d'applications un jeu d'enfant. Très souvent, le développeur d'applications C ++ serait totalement perdu dans les entrailles remplies de modèles d'une bibliothèque, même lorsqu'il est très compétent pour créer des applications à l'aide de cette bibliothèque. Et l'écriture d'un droit de bibliothèque C ++ est une tâche de programmation très difficile, et uniquement effectuée afin de fournir un cadre idéal au profit du développeur d'applications. Les bibliothèques C ++ ne sont pas simples en interne, elles sont (ou peuvent être ...) juste puissantes mais simples du point de vue des programmeurs d'applications.
Mais l'API du noyau ne peut pas être une API C ++, elle doit être une API indépendante du langage, donc la plupart des bonnes choses en C ++ ne seraient pas directement utilisables à cette interface. De plus, le noyau n'est pas vraiment divisé en parties "bibliothèque" et "application" développées indépendamment, avec plus d'efforts allant logiquement à une bibliothèque, pour faciliter la création d'une masse d'applications.
De plus, la sécurité et la stabilité sont plus critiques à l'intérieur d'un noyau, et les méthodes virtuelles sont beaucoup plus dynamiques et donc beaucoup plus difficiles à isoler et à vérifier, que les rappels simples ou d'autres mécanismes de type C.
En bref, bien que vous puissiez bien sûr écrire n'importe quel programme C, y compris un noyau en C ++, la majeure partie de la puissance de C ++ n'est pas bien utilisée dans le noyau. Et beaucoup diraient que les outils de programmation devraient vous empêcher de faire des choses que vous ne devriez pas faire. C ++ ne le ferait pas.