Programiści jądra są często ludźmi, którzy czują się szczęśliwsi, kiedy od razu widać ze źródła, co faktycznie robi kod.
C ++ ma wiele innych funkcji, które ukrywają to, co kod robi więcej niż zwykły kod C: ukrywa to: przeciążenia, metody wirtualne, szablony, referencje, rzuty ... C ++ ma także znacznie więcej składni, którą musisz opanować, aby nawet zrozumieć C ++ kod używający go.
Myślę, że moc C ++ to bardzo potężne narzędzia do tworzenia bibliotek i frameworków, które sprawiają, że tworzenie aplikacji jest bardzo proste. Bardzo często twórca aplikacji C ++ byłby całkowicie zagubiony we wnętrzach biblioteki wypełnionych szablonami, nawet jeśli byłby bardzo kompetentny w tworzeniu aplikacji przy użyciu tej biblioteki. A napisanie odpowiedniej biblioteki C ++ jest bardzo trudnym zadaniem programistycznym i zostało wykonane tylko w celu zapewnienia świetnych ram dla korzyści twórcy aplikacji. Biblioteki C ++ nie są wewnętrznie proste, są (lub mogą być ...) po prostu potężne, ale proste z punktu widzenia programistów aplikacji.
Ale API jądra nie może być API C ++, musi to być API niezależne od języka, więc większość dobrych rzeczy w C ++ nie będzie bezpośrednio wykorzystywana w tym interfejsie. Co więcej, jądro nie jest tak naprawdę podzielone na części „biblioteczne” i „aplikacyjne” opracowane niezależnie, z większym wysiłkiem logicznie przechodząc do jednej biblioteki, aby ułatwić tworzenie masy aplikacji.
Ponadto bezpieczeństwo i stabilność są bardziej krytyczne w jądrze, a metody wirtualne są znacznie bardziej dynamiczne, a zatem trudniejsze do wyodrębnienia i weryfikacji, niż zwykłe wywołania zwrotne lub inne mechanizmy podobne do C.
Krótko mówiąc, chociaż można oczywiście napisać dowolny program C, w tym jądro jako C ++, większość mocy C ++ nie jest dobrze używana w jądrze. I wielu twierdzi, że narzędzia programistyczne powinny powstrzymywać cię od robienia rzeczy, których nie powinieneś robić. C ++ nie.