Programmiersprache „C“
C ist eine der bekanntesten Programmiersprachen. Sie hat einen relativ geringen Befehlsumfang. Man programmiert auf einer Ebene, die nur wenig über Assembler liegt. In der Nachfolgesprache C++ wurden die Möglichkeiten jedoch deutlich erweitert. Ich habe in C bis jetzt nur einige Übungsprogramme erstellt.
Vorteile
- systemnahe Programmierung möglich
- trotzdem weitgehend plattformunabhängig
- Aufgrund der Einfachheit der Sprache gibt es für fast jede Plattform einen Compiler.
- schnelle Ausführungsgeschwindigkeit
Nachteile
- wenig Schutz vor Programmierfehlern
- Viele Sicherheitslücken in Programmen kommen von typischen Schwachpunkten in C wie z. B. Pufferüberläufen. In C können Daten in eigentlich verbotene Speicherbereiche geschrieben werden.
- An der Uni musste ich ein C-Programm schreiben. Mein Programm stürzte immer ab, wobei nur eine wenig hilfreiche Fehlermeldung erschien („core dumped“), mit der kein Kollege und nicht einmal mein Betreuer etwas anfangen konnte. Des Rätsels Lösung war, dass ich
if (a=b)
anstattif (a==b)
geschrieben hatte. In C kann man sogar inif
-Bedingungen Zuweisungen machen! Und wenn die schiefgehen, kann offenbar ein total seltsames Verhalten herauskommen.
- Der C-Programmierer muss sich um vieles selber kümmern, z. B. um das Freigeben von Speicher, den er zuvor reserviert hat. Auch das ist extrem fehleranfällig.
Alternativen
Ein Studienkollege hat mich davor gewarnt, C++-
Java ist eine mächtigere Programmiersprache und man kann mit ihr nicht so viele schwere Fehler machen, weil viele Überprüfungen eingebaut sind. Java verwendet eine ähnliche Syntax wie C. Das erleichtert den Umstieg.
Ich sehe kaum einen Bedarf, dass ich C oder C++ lerne.