GNU/Linux >> Linux Esercitazione >  >> Linux

Perché la maggior parte dei programmi Linux sono scritti in C?

Ci sono state molte discussioni su questo. Principalmente, la ragione è filosofica. Il C è stato inventato come un semplice linguaggio per lo sviluppo di sistemi (non tanto per lo sviluppo di applicazioni). Ci sono molte argomentazioni per usare il C++, ma ce ne sono altrettante per non usando C++ e attenendosi a C.

Alla fine, è una questione storica. La maggior parte del materiale applicativo è scritto in C, perché la maggior parte del materiale del Kernel è scritto in C. E poiché allora la maggior parte del materiale era scritto in C, le persone tendono a usare le lingue originali.

A questo punto, qualcuno potrebbe chiedere "OK, allora perché il kernel scritto in C e non portato in C++?" . Questo è stato discusso su kerneltrap qualche tempo fa. Una bella spiegazione che può essere citata da questo thread è una risposta di yoshi314 (citando direttamente):

questo perché quasi tutte le app c++ ​​necessitano di una libreria standard c++ separata per funzionare. quindi dovrebbero portarlo al kernel e aspettarsi un sovraccarico extra ovunque.

c++ è un linguaggio più complesso e ciò significa che il compilatore crea codice più complesso da esso. per questo motivo, scoprire che un problema deriva da un bug del compilatore, piuttosto che da un errore di codice, è più facile in c.

inoltre il linguaggio c è più spoglio ed è più facile seguire la sua rappresentazione in assembly, che spesso è facile da prevedere.

c++ è più versatile, ma c è più adatto per cose di basso livello o incorporate.

D'altra parte, "la maggior parte dei programmi Linux" è abbastanza fuorviante. Dai un'occhiata alle applicazioni grafiche. Python sta guadagnando sempre più terreno soprattutto negli ambienti GUI su Linux. Più o meno la stessa cosa che sta accadendo con Windows e .NET.


Dopo aver letto la seguente email di Linus Torvalds, il creatore di Linux. Non posso fare a meno di pensare che la risposta sopra sia errata. Sembra pensare che i programmatori C++ non siano buoni sistemi programmatori. E che le funzionalità extra in C++ spesso causano più problemi a lungo termine rispetto ai vantaggi che apportano a breve termine. Sebbene si possa non essere d'accordo con lui, è difficile sopravvalutare l'influenza che ha avuto sul sistema operativo Linux.

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


Linux
  1. Linux – I diversi kernel Linux/unix sono intercambiabili?

  2. In quali linguaggi sono scritti Windows, Mac OS X e Linux?

  3. Come posso vedere quali sono i miei comandi Linux più usati?

  4. Perché ci sono così tanti /dev/tty in Linux?

  5. Perché Perl è installato di default con la maggior parte delle distribuzioni Linux?

Le migliori distribuzioni Linux più adatte ai principianti

I 10 motivi principali per utilizzare Linux

Perché i nerd usano Linux

Come compilare ed eseguire programmi C, C++ in Linux

Come eseguire programmi C/C++ in Linux [Terminale ed Eclipse]

Linux:perché vero e falso sono così grandi?