Warum sind die meisten Linux-Programme in C geschrieben? Warum werden sie nicht mit C ++ geschrieben, das neuer ist?
Warum sind die meisten Linux-Programme in C geschrieben? Warum werden sie nicht mit C ++ geschrieben, das neuer ist?
Antworten:
Es gab viele Diskussionen darüber. Der Grund ist hauptsächlich ein philosophischer. C wurde als einfache Sprache für die Systementwicklung erfunden (weniger für die Anwendungsentwicklung). Es gibt viele Argumente für die Verwendung von C ++, aber es gibt ungefähr so viele für nicht mit C ++ und dem Festhalten an C.
Am Ende ist es ein historisches Problem. Die meisten Anwendungen sind in C geschrieben, da die meisten Kernel-Anwendungen in C geschrieben sind. Seitdem die meisten Anwendungen in C geschrieben wurden, werden in der Regel die Originalsprache verwendet.
An dieser Stelle könnte jemand fragen: "OK, warum ist der Kernel in C geschrieben und nicht nach C ++ portiert?" . Dies wurde vor einiger Zeit auf Kerneltrap diskutiert . Eine nette Erklärung, die aus diesem Thread zitiert werden kann, ist eine Antwort von yoshi314 (direkt zitierend):
Das liegt daran, dass fast jede C ++ - App eine separate C ++ - Standardbibliothek benötigt, um zu funktionieren. Sie müssten es also auf den Kernel portieren und überall einen zusätzlichen Overhead erwarten.
c ++ ist eine komplexere Sprache und das bedeutet, dass der Compiler komplexeren Code daraus erstellt. Aus diesem Grund ist es in c einfacher, festzustellen, dass ein Problem auf einen Compiler-Fehler und nicht auf einen Codefehler zurückzuführen ist.
Auch die Sprache C ist mehr Barebone und es ist einfacher, der Assembly-Darstellung zu folgen, die oft leicht vorherzusagen ist.
c ++ ist vielseitiger, aber c eignet sich eher für Low-Level- oder Embedded-Inhalte.
Andererseits sind "die meisten Linux-Programme" ziemlich irreführend. Schauen Sie sich grafische Anwendungen an. Insbesondere in GUI-Umgebungen unter Linux gewinnt Python immer mehr an Bedeutung. Ungefähr dasselbe passiert mit Windows und .NET.
Nach dem Lesen der folgenden E-Mail von Linus Torvalds, dem Schöpfer von Linux. Ich kann nicht anders als zu denken, dass die Antwort oben falsch ist. Er scheint zu denken , dass C ++ Programmierer sind nicht gut Systeme Programmierer. Und dass die zusätzlichen Funktionen in C ++ langfristig häufig mehr Probleme verursachen als die kurzfristigen Vorteile. Man kann ihm zwar nicht zustimmen, aber es ist schwierig, den Einfluss, den er auf das Linux-Betriebssystem hatte, zu übertreiben.
C++
ist neuer alsC
, aber das ist ein bisschen irrelevant. Sie sind verschiedene Sprachen.