![]() |
"C" versus Pascal
Hallo
Ich lerne zu Zeit "C" Nicht C++, wegen µC Programierung. Also ich verstehe nicht warum "C" die Erfolgs Sprache wurde. so was wie "i++" oder "+=" oder Bit Manipulation hätte man auch in Delphi umsetzen können. OK der Header das ist eine tolles feature. Nur Pascal ist einfach eleganter, alleine nur die String Behandlung in "C" Mich würde interessieren was eure Erfahrung zu meiner Frage "C" versus Pascal ist. PS Versteht mich nicht falsch "C" ist ein tolles Werkzeug für µC "Pics" |
AW: "C" versus Pascal
Also (das ist nur meine persönliche Kenntnis und Meinung) ist C (wie auch einige andere Programmiersprachen) eigentlich nur ein Unfall der Geschichte. C hätte es gar nicht geben dürfen und es war nicht geplant (ähnlich wie Pascal, das eigentlich nur als Lehrsprache konzipiert wurde). Ich weiß es nicht ganz genau, aber vor C soll es A und B gegeben haben. Danach kommt C. Schon die einfache Nummerierung zeigt, dass das eigentlich nicht als etwas erfolgreiches geplant war, sonst hätte man dem Ganzen einen guten Namen gegeben, wie man es auch bei Basic, Pascal, Java usw. tat. So wie ich das mal erfahren habe wollte man eigentlich nur Unix programmieren und es fehlte eine vernünftige Sprache. Pascal gab es noch nicht, Basic (na ja), und Assembler auf Dauer ist ja auch kompliziert. Also bevor man Unix schrieb, hat man sich erst eine Programmiersprache entwickelt. Und weil nicht geplant war, dass Menschen in Zukunft damit zu tun haben werden, hat man es einfach gemacht. Genau so als wenn man eine Funktion auf die Schnelle schreibt und den Variablen so viel aussagekräftige Namen wie - i, a, c, k, tv, ux und q gibt. Es ist ja nicht geplant, dass es jemand anders liest, also gibt man sich auch nicht die Mühe. Das hat man sich auch nicht bei C gemacht. Es sollte nur eine Sprache für den Auftrag werden, die einfacher als Assembler ist aber fast genauso mächtig.
Also wurde schnell etwas zusammengeklopft und ein völlig bedeutungsloses Betriebssystem namens Unix erschaffen. Denn auch das war nicht auf Erfolg konzipiert. Und eigentlich ist es das gewesen. Eine Firma brauchte ein Betriebssystem, also sollte eins geschrieben werden. Man nannte es Unix. Und weil eine passende Programmiersprache fehlte hat man vorher C als vorläufiges Hilfswerkzeug entwickelt. Nur dann kam etwas womit keiner gerechnet hat - der Erfolg. Und der kam so: entweder war man früherer lockerer drauf oder die Angst vor Raubkopien war noch nicht da, verteilte man Unix auf den Unis zu Studienzwecken. Nutzung war nicht erlaubt (ohne zu bezahlen) aber man durfte es frei studieren. Das hatte noch einen schönen Nebeneffekt - es wurden viele Fehler gefunden, so dass man sie schnell reparieren und Unix wurde dadurch ein richtig stabiles Betriebssystem. Es war fast so wie es heute mit Open Source ist, nur das Unix kein Open Source im eigentliches Sinne war, sondern man nichts dagegen hatte, dass die Studenten es studieren. Das nebenbei die Fehler ausgemerzt wurden, war ein netter Nebenerfolg. Ja, und nun zurück zu C. Da Unix in C geschrieben war und es irgendwann an vielen Unis üblich wurde Unix zu studieren, konnten bald viele Studenten C ganz gut. Und nachdem die fertig mit dem Studium waren, haben sie einfach weiter mit C gemacht. Also, hätte man gewusst, dass C so ein Erfolg wird, man hätte sich vermutlich mehr Mühe gegeben. Das ist aber wie so oft im Leben, man hat ein Problem in der Firma, man kommt irgendwie nicht in die Ecke ran, wo ständig die Kugelschreiber hin rollen, also holt man sich ein Stöcken vom Sperrmüll auf der Straße. Und dann bleibt es im Büro und entwickelt sich über Jahre zum Universallwerkzeug. Jeder stochert damit in seiner Ecke rum. Und dann sagt man sich - hätte ich das gewusst, dann hätte ich mir einen guten Stock bei Obi besorgt. Stadtessen haben wir nun eine abgebrochene Querlatte von einem Schrank hier. Also das ist meine Geschichte zu C. |
AW: "C" versus Pascal
Zitat:
![]() |
AW: "C" versus Pascal
Hatte zufälligerweise gerade vor ein paar Tagen noch einen
![]() Zitat:
|
AW: "C" versus Pascal
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 :mrgreen: 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. |
AW: "C" versus Pascal
Zitat:
C macht es zwar deutlich einfacher unlesbaren Code zu schreiben, aber es gibt genug Programmierer, die das auch in Delphi schaffen. |
AW: "C" versus Pascal
Zitat:
Auch der Abkürzungswahn hatte Gründe, die z.B. bei den Linkern zu suchen waren. Nach 6-8 Stellen war denen der Rest des Namens egal. Das war gestern. Heute kenne ich keine Stelle z.B. in der Typsicherheit, wo modernes C wirklich Nachteile gegenüber Pascal hätte. |
AW: "C" versus Pascal
Zitat:
|
AW: "C" versus Pascal
Die ungarische Notation hat bei einer nicht typisierten Sprache schon Sinn. In C kannst du einem Char auch einen Integer zuweise, ohne dass der Compiler meckert. Nur ob dann auch das herauskommt, was du eigentlich beabsichtigt hast, ist was anderes. Die ungarische Notation hilft solche Fehler zu vermeiden. weil man "sieht" was die Variable für einen Datentyp hat.
|
AW: "C" versus Pascal
Zitat:
Imho hat das (ungarische Notation) hat aber eher etwas mit schlechtem Codestil zu tun: Wenn ich nicht sofort sehe, was für ein Typ eine Variable ist, dann hab ich im Code etwas sehr falsch gemacht. Typisch für C ist komplexer, kompakter, dreckiger Code mit sehr kurzen Variablennamen. Das man dann in die Vorwärtsverteidigung geht und wenigstens die Variablen per Namenskonvention einem Typ zuordnen kann, ist typisch für die C-Fraktion. Aber C hat natürlich auch Vorteile ('#define' ist einer davon). |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz