Che diamine, interverò con il mio $ 0.02.
In molti casi esiste una differenza reale o percepita tra i linguaggi "di sistema" e i linguaggi di livello superiore. Ignorerò la maggior parte dei linguaggi "di livello superiore", poiché nessuno (almeno non molti) sosterrà che per molte attività, linguaggi come Python, Ruby, ecc. Sono più semplici da utilizzare.
C è stato progettato per essere un linguaggio di sistema, il che significa che è stato progettato come linguaggio in cui è stato scritto il sistema operativo Unix. Come tale, è stato progettato per essere semplice, potente e veloce. Un linguaggio semplice acquisisce potenza grazie al fatto che i programmatori non sistemici considerano spesso pericolosi: i puntatori, la gestione manuale della memoria, ecc. Come già accennato, C è piuttosto semplice. K & R è il più piccolo libro sul mio scaffale di programmazione di gran lunga (senza contare O'Reilly Pocket References) ed è solo marginalmente "più grande" del mio Ruby Pocket Reference. C è piuttosto potente. Se hai bisogno di parlare con l'hardware, controlla manualmente e twiddle con la memoria, ecc. C ha la capacità.
Dal punto di vista di un programmatore, tuttavia, C non è così semplice. La velocità e la potenza arrivano al prezzo della gestione manuale della memoria e non tanto supporto OOP integrato nella lingua. Il C ++ (non la mia lingua preferita) è molto più semplice dal punto di vista di un programmatore, ma molto meno semplice dal punto di vista di un compilatore. Objective-C (forse la mia lingua preferita) ha lo stesso compromesso, con una leggera inclinazione nella direzione di mantenere la lingua semplice (la garbage collection è un nuovo arrivato in Objective-C, per esempio). Ma dal momento che il mondo informatico come molti di noi sanno che è stato scritto in C, è difficile per le lingue più nuove, più complicate ma "più facili" ottenere un'adozione diffusa.
In alcuni casi, specialmente quando lo "standard" corrente è "abbastanza buono" come C, semplicemente non c'è un incentivo per qualcosa di "migliore" (C ++, Objective-C, D ecc.) per ottenere la trazione , quando c'è ancora abbastanza incentivo per creare qualcosa di "migliore".