GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Warum sind die meisten Linux-Programme in C geschrieben?

Darüber hat es viele Diskussionen gegeben. Der Grund ist hauptsächlich ein philosophischer. C wurde als einfache Sprache für die Systementwicklung erfunden (nicht so sehr für die Anwendungsentwicklung). Es gibt viele Argumente für die Verwendung von C++, aber ungefähr genauso viele für nicht C++ verwenden und bei C bleiben.

Am Ende ist es ein historisches Problem. Das meiste Anwendungszeug ist in C geschrieben, weil das meiste Kernelzeug in C geschrieben ist. Und da damals das meiste Zeug in C geschrieben wurde, neigen die Leute dazu, die Originalsprachen zu verwenden.

An dieser Stelle könnte jemand fragen "OK, also warum ist der Kernel in C geschrieben und nicht nach C++ portiert?" . Dies wurde vor einiger Zeit auf Kernetrap diskutiert. Eine nette Erklärung, die aus diesem Thread zitiert werden kann, ist eine Antwort von yoshi314 (direkt zitieren):

Das liegt daran, dass fast jede C++-Anwendung eine separate C++-Standardbibliothek benötigt, um zu funktionieren. also müssten sie es auf den Kernel portieren und überall mit einem zusätzlichen Overhead rechnen.

c++ ist eine komplexere Sprache und das bedeutet, dass der Compiler daraus komplexeren Code erstellt. Aus diesem Grund ist es in c einfacher festzustellen, dass ein Problem auf einen Compiler-Fehler als auf einen Codefehler zurückzuführen ist.

auch die C-Sprache ist mehr Barebone und es ist einfacher, ihrer Assembly-Darstellung zu folgen, die oft leicht vorherzusagen ist.

c++ ist vielseitiger, aber c eignet sich besser für Lowlevel- oder Embedded-Sachen.

Andererseits ist "die meisten Linux-Programme" ziemlich irreführend. Werfen Sie einen Blick auf grafische Anwendungen. Python setzt sich insbesondere in GUI-Umgebungen unter Linux immer mehr durch. Ungefähr dasselbe, was mit Windows und .NET passiert.


Nachdem Sie die folgende E-Mail von Linus Torvalds, dem Erfinder von Linux, gelesen haben. Ich kann nicht anders, als zu glauben, dass die obige Antwort falsch ist. Er scheint zu glauben, dass C++-Programmierer keine guten Systeme sind Programmierer. Und dass die zusätzlichen Funktionen in C++ langfristig oft mehr Probleme bereiten als die Vorteile, die sie kurzfristig bringen. Auch wenn man ihm widersprechen mag, ist es schwierig, den Einfluss zu überschätzen, den er auf das Linux-Betriebssystem hatte.

http://harmful.cat-v.org/software/c++/linus


Linux
  1. In welchen Sprachen sind Windows, Mac OS X und Linux geschrieben?

  2. Warum sind Makefiles in Linux so nützlich?

  3. Erkennen Sie Windows oder Linux in C, C++

  4. Warum brauchen wir die .so.1-Datei unter Linux?

  5. Wie kann ich sehen, was meine am häufigsten verwendeten Linux-Befehle sind?

Beste Linux-Distributionen, die am besten für Anfänger geeignet sind

Die 10 wichtigsten Gründe für die Verwendung von Linux

Warum Nerds Linux verwenden

So kompilieren und führen Sie C- und C++-Programme unter Linux aus

So führen Sie C/C++-Programme unter Linux aus [Terminal &Eclipse]

Linux – Warum sind wahr und falsch so groß?