Quote:
Originally Posted by itachi&kisame
Die Begründung der Aussage, dass C++ der optimale Einstieg ist, basiert auf deiner eigenen Meinung und oder Erfahrung, welche nicht auf alle Menschen anwendbar ist.
|
Nein, sie basiert auf dem Fakt, dass C++ mehrere Paradigmen vereint und so in alle einen Einstieg gewährt, sodass es zu keiner Sprache eine wirklich aufwändige Ungewöhnung gibt.
Durch die C Untermenge lernst du imperative Programmierung ohne viel Boilerplate Code, den du ggf. in reinen OO Sprachen hast. Man geht im Grunde genau den Weg, den du empfohlen hast, nämlich erstmal schrittweise zu lernen, dem Computer Befehle zu geben, diese Befehle in Funktionen zu gliedern, etc. pp., aber eben ohne dich zu stark an die Konventionen, Herangehensweisen und Bibliotheken von C zu gewöhnen (warum malloc, wenn man new hat?). Stattdessen wirst du an der Stelle abgeholt und direkt in die OO Programmierung eingeführt (alles natürlich unter der Voraussetzung, man hat qualitative Quellen). Und am Ende kann man durch Template-Meta-Programmierung gleich noch funktionale Programmierung lernen.
Die Wertesemantik funktioniert intuitiver als Referenzsemantik in z.B. Java. Die Freispeicherverwaltung braucht dich am Anfang gar nicht interessieren und später lernst du auch direkt, wie du die manuelle Verwaltung umgehst, zu der aber ohnehin nicht mehr als der simple Grundsatz new -> delete gehört. Die diversen Optimierungen der GCs anderer Sprachen haben wesentlich mehr Tücken.
Natürlich ist da auch meine persönliche Meinung drin, aber auch rein auf die Fakten bezogen hat C++ viele Eigenschaften, die sie zu einer guten Einstiegssprache in ein breites Feld der Programmierung machen. Natürlich muss man auch viele Wege zu Fuß gehen, anstatt die Vorzüge eines großen Frameworms zu genießen, was die Erfolgskurve stark abflacht, aber beim reinen Lernen der Sprache bzw. des Programmierens stört es dich auch nicht, ob GUIs nun nativ und unkompliziert bereitgestellt werden oder nicht.
Ich verstehe auch nicht so recht, wieso du C empfiehlst, die Sprache sogar als ideal bezeichnest (das wiederum halte ich nämlich schlicht für falsch; die Sprache ist zwar simpel, ist aber ungeeignet für die meisten Anwendungsgebiete und es gibt keinen Grund, die Sprache C++ vorzuziehen, wenn man nicht gerade für Microcontroller programmiert; und C zu lernen, nur um dann auf etwas anderes umzusteigen, ist Unsinn), aber anscheinend ein Problem mit meiner Empfehlung von C++ hast, obwohl der vorgeschlagene Lernweg sogar derselbe ist: prozedural - > OO (halte ich auch für sinnvoll, dass man lieber schrittweise die Abstraktion erhöht). Man koppelt sich lediglich nicht so stark an C Praktiken, die man sich in OO Programmierung dann wieder mühsam abgewöhnen darf.
Schon mal OO Code (insb. in C++) gesehen, der von eigentlichen C Entwicklern stammt? Sieht nicht schön aus.