@Santa Klaus:
Ich habe keine wirklich sachlichen Argumente für meine Bevorzugung von
C gegenüber Pascal; aber mir gefällt einiges an Pascal nicht, was ich
in C besser realisiert finde. Das sind persönliche Geschmacksansichten,
also bitte nicht als Evangelismus werten.
Mir gefällt die Syntax nicht:
- Wann und wann nicht am Zeilenende ein Semikolon zu setzen ist, hat
mich beim Pascal-Programmieren schon fluchen lassen
- Das IMHO völlig entbehrliche Schlüsselwort "then"
- Der Punkt am Ende ("Compiler out of sync or no .")
Systemfunktionen sind teilweise sehr seltsam (oder von mir nicht
verstanden):
- Die vergurkten und absolut uneinheitlichen Funktionen für
Dateizugriffe
- Die (s.o.) Funktionen für formatierte Ausgabe von Zahlen oder Text
auf eine etwaige Konsole
Anderes:
- mit der Sprache selbst nicht realisierbare Funktionen mit variabler
Argumentenliste sind Sprachbestandteil
(writeln kann man beliebig viele Argumente übergeben, aber wie schreibt
man in Pascal ein Äquivalent?)
- Strings sind nur 255 Zeichen lang
(wenn ich mich recht erinnere, wird ein String im Speicher mit einem
vorangestellten Längenbyte abgelegt)
- das sehr akademische Pointerkonzept
- lokale Funktionen in beliebiger Schachtelungstiefe
(Theoretisch schick, leitet aber nicht gerade dazu an, Code
wiederverwendbar zu schreiben)
- wenn ich mich nicht völlig irre: Keine Funktionspointer
- das nicht wirklich vorhandene Modulkonzept
Zwar gibt es mit TurboPascal und dessen Units einen Versuch, Module zu
unterstützen, aber ein Äquivalent zum Arbeiten in C ist IMHO nicht
möglich. Ohne den Quelltext einer Unit vorliegen zu haben, kann man
nichts über deren Interface in Erfahrung bringen; bei einer übersetzten
Objektdatei ist das Interface in der zugehörigen C-Headerdatei
beschrieben.
Außerdem ist TurboPascal != Pascal. Wenn auch Delphi/Kylix die
TurboPascal-Konzepte fortführen, so ist eine borland-spezifische
Spracherweiterung nicht in anderen Pascalcompilern zu finden. Was mache
ich auf einer nicht von Borland unterstützten Plattform?
Zum Programmieren_lernen_ ist Pascal sicherlich 'ne ganz nette Sache,
weil man sich dabei auf bestimmte Konzepte der strukturierten
Programmierung konzentrieren kann, aber wenn man auch nur etwas
hardwarenaher programmiert (mein täglich Brot), dann verzweifelt man
schnell aufgrund aller möglichen Einschränkungen.
Ich habe "damals", als ich mich mit Pascal nicht anfreunden konnte,
mit drei verschiedenen Pascal-Compiler gearbeitet; UCSD-Pascal auf
einem Apple II (was ich schnellstmöglichst einstellte, was weniger an
der Sprache an sich als am Diskettenjonglieren lag), einem anderen
8-Bit-Compiler auf einem 6809 und TurboPascal 4 bis 5.5 auf einem PC.
Naja, dazu kommt noch, daß ich auf einigen Plattformen gearbeitet habe,
für die (zumindest für mich) kein Pascal-Compiler verfügbar/zugänglich
war. C-Compiler hingegen immer, auch wenn ich C erst mit der Einführung
von ANSI-C habe schätzen lernen können.
Ich programmiere halt schon seit etwa fünfzehn Jahren zum Gelderwerb in
C und habe daher auch etwas Erfahrung damit gesammelt, daß bestimmte
wirklich unangenehme Eigenheiten von C, über die Anfänger oft (oder
fast schon immer) stolpern, mir halt bekannt sind.
Als eine größere Fingerübung zum C-Programmieren lernen habe ich mal
einen C-Compiler ("Small C") auf einen von mir verwendeten Prozessor
portiert und ein, zwei Sprachelemente von "richtigem C" nachgerüstet.
Das Endergebnis war zwar nicht von großer Tragweite, aber ich habe dabei
viel gelernt.
Also: viel persönliches Bauchgefühl, aber vielleicht auch der eine oder
andere "härtere" Kritikpunkt.