Zunächst einmal: Das was Popov in den Tiefen seines Gedächtnisses herausgefischt hat, stimmt soweit (jedenfalls, wenn ich das mit dem Zeugs korreliere, was sich in den Niederungen meines Gedächtnisses befindet).
'C' ist ein etwas besserer Macroassembler: Eine Zuweisung hinterlässt das Ergebnis meist auf dem Stack und so ist auch 'a = b+c' ein Ausdruck, mit dem weiter gerarbeitet werden kann: 'if x == a=b+c'. Praktisch. Damit war in den frühen 70er Jahren eine Programmiersprache/Makroassembler entwickelt, mit dem sich sehr kompakte und schnelle Programme schreiben ließen.
Kernighan und Ritchie haben bei Unix das Ziel verfolgt, das sich das
OS ruhig verhält und den Spezialisten, die es bedienen, so wenig wie möglich auf den Sack geht. Wenn also etwas funktioniert, wollten sie kein 'Operation Successful' sehen. Ähnlich wurde 'C' konzipiert: Sie viel wie möglich sollte machbar sein und Spezialisten (eben die beiden) wollten mit wenig Zeichen viel ausdrücken: In 'C' kann man sehr kurze Programme schreiben, ohne überflüssigen Schnickschnack wie 'var','then', 'procedure', 'function', 'do', 'begin', 'end' usw. Unlesbarer werden die Programme damit ja nicht.
So und nun meine Theorie: Da die meisten Programmierer Abkürzungsfetischisten sind (anders kann ich mir die bescheuerten Bezeichner 'ptr' 'chr' sowie die ungarische Notation nicht erklären) fanden viele diese Sprache natürlich total cool, denn wer meinen Code nicht versteht, ist eben nicht so cool wie ich. Blöderweise lässt der C-Compiler so ziemlich jeden Murks durchgehen, weswegen extra Lint entwickelt werden musste, das den gröbsten Quark moniert.
Lustig finde ich, das C-Programmierer beinahe zwnghft Abk vw. Alleine dafür gehört C verboten. Oder die Programmierer umgeschult. Auf Gesetzestextautoren
Man kann in C allerdings auch hervorragend lesbaren Code schreiben. Wenn man will. C ist durch seine fehlende Strukturierung (kein
Unit-Konzept, Klassen etc.) nur für kleine Projekte geeignet. Wenigstens durch die Header-Dateien hat man in Ansätzen das
Unit-Konzept von Pascal eingefrickelt.
Fazit: Man sollte C können, wenn man mitreden will, und für µC und den hardwarenahen Bereich allgemein ist es eh Standard. Man muss ja nicht der Abkürzeritis und der Endloscodezeilenverwurst verfallen.