Programmiersprachen C und C++
-
cisaooplang schrieb:
asc schrieb:
Und vor allem: Ich habe nie den C-Stil verinnerlicht.
Lustig, dass alle, die keinen modernen C-Stil kennen, allen schlechten Code als C-Stil beschimpfen und C als reines Gehacke bezeichnen.
Ich weiß das man auch prozedural guten und lesbaren Code schreiben kann (Habe selbst mit prozeduraler Programmierung unter GFA-Basic und Pascal begonnen). Aber allen real in Projekten gesehenen Code, der von Programmierern geschrieben wurde die von C kamen, war ziemlich unleserlich. Das liegt nicht unbedingt an C, aber hinterlässt dennoch kein gutes Gefühl.
Aber in C und C++ unterscheiden sich viele Dinge. So kann ich beispielsweise in C++ ohne weiteres auf Doppelzeiger verzichten (Zeigerreferenzen), habe in der Regel höhere Typsicherheit und mehr Elemente zur Codestrukturierung.
C-Programmierer die zu C++ überwechseln (Das gilt aber nicht nur für C => C++) halten sich gerne an den gelernten, die Idiome und Paradigmen der Sprachen unterscheiden sich aber. Selbst wenn ich in C++ prozedural programmiere, wird mein Code ein anderer sein, als wenn es in C geschrieben werden müsste.
cisaooplang schrieb:
Dabei kann schönes C viel klarer sein als eine undurchsichtige C++/Boost-Mischung (die, zugegeben, etwas weniger Zeilen beansprucht).
Einige Konstrukte sind wirklich nicht schön lesbar, aber andere wiederum erleichtern die Lesbarkeit. Und C++ entwickelt sich in der Hinsicht weiter (Sei es nun die neue Form der for-Schleife oder das Schlüsselwort auto und was alles noch kommt, um die Schreibweise zu vereinfachen).
Man sollte eines nicht vergessen: C und C++ sind schon seit längeren voneinander unabhängige Sprachen, es ist keine komplette Kompatibilität gegeben, und mit jedem weiteren C und C++ Standard besteht die Wahrscheinlichkeit das die Sprachen sich noch weiter entfernen.
Jemand der Auto fahren lernen will, werde ich nicht empfehlen noch unbedingt Motorrad vorher zu erlernen. Jemand der C++ erlernen will, sollte nur dann auch C lernen, wenn er das zusätzlich will...
Alles was man in C++ lernen muss bringen C++ Bücher auch bei. Das es eine Schnittmenge gibt mag stimmen, doch die gibt es sogar in C# und Java (Auch dort kann ich, wenn ich mal statische Methoden normalen Funktionen gleichstelle, einigen Code schreiben der 1:1 nach C kopiert werden kann.
-
Beratungsresistent? Ist aber nicht schlimm, sondern normal.