C++ Mit C oder mit C++ anfangen? Warum?

Faust2011 schrieb:
Ich würde wie so oft sagen: it depends! Stell Dir vor, Du schreibst ein recht systemnahes Programm auf einer Unix-Umgebung. Da wäre C die Sprache der Wahl.

Selbst da sehe ich eigentlich keine Grund, weshalb man C den Vorzug geben sollte. Ob das Programm systemnah oder nicht sein soll, ist eigentlich vollkommen irrelevant. Wenn du jetzt dein Einwand bringst, systemnahe Programme müßten besonders performant sein, sage ich na und? Die Sprache C++ ist prinzipiell nicht einen Tick weniger performant als C. Wenn's auf ein besonders schlankes und flottes Programm ankommt, muß man halt eventuell sehr wählerisch sein, welche Libraries / Sprachkonstrukte von C++ man einsetzt.
 
Ja, da hast Du gar nicht so Unrecht ;) Bin da noch geprägt aus meiner Studien-Vergangenheit... da hatten wir uns in einem Tutorium intensiv in C mit der Systemprogrammierung eines Unix-Systems auseinandergesetzt :D
 
Das "Problem" ist, dass meines Wissens der Linux Kernel praktisch komplett in C geschrieben ist und das gleiche gilt für viele anderen alten OS-Projekte. Solange es aber nciht dein erklärtes Ziel ist bei so einem Projekt mitzuwirken würde ich von anfang an auf c++ setzen.
 
Man braucht auch bei einem Betriebssystem keine einzige Zeile C, wenn man nicht will. Etwas Assembler ja aber nicht C.

Man kann mit C und C++ im Prinzip erstmal das Gleiche machen. Jedoch gibt es Unterschiede was den Compiler angeht. In den Embedded Systems gibt es (glaube ich) eher noch wenige C++-Compiler. Hier ist C noch weit verbreitet.

C und C++ sind vollkommen unterschiedliche Sprachen. Das sollte man sich klar machen. Sicher kann ein C++ Compiler die meisten C-Codes kompilieren und theoretisch kann man dann auch 99.9% der C-Codes dort kompilieren, aber man sollte sich entscheiden, ob man C oder C++ schreiben will. Obwohl beides funktioniert sollte man es allerdings nicht mischen, denn dann kommt man schnell in Teufels Küche. Dann wird Speicher unterschiedlich angelegt, freigebgen und zwischendurch reingeschrieben und plötzlich macht das Programm etwas völlig anderes, als erwartet.

Für den allerersten Anfang finde ich C einfacher, da erstmal intuitiver. Aber später wendet sich das Blatt etwas. Richtig zu programmieren halte ich in C tatsächlich für schwieriger, eben weil es in C++ Konstrukte gibt, die einem die Arbeit erleichtern. Es gibt allerdings immernoch viele Projekte/Bibliotheken usw., die C nutzen. Will man an so etwas mitarbeiten muss man eben C lernen. Ansonsten empfehle ich eher C++. Eine solche Bibliothek dann in C++ einzubinden halte ich für weniger problematisch.

Wenn man C++ kann versteht man auch (theoretisch) C-Code. Es ist nur vielleicht erstmal schwieriger sich hier zurecht zu finden. Aber guten C-Code schreiben kann man dann noch lange nicht. Allerdings denke ich aber, dass man als Anfänger eher richtiges (!) C++ lernen sollte. C benötigt man als Privatmensch eher nicht mehr.
 
C und C++ bieten ansich ja keine großen Unterschiede, wie es z.B. bei vielen Programmiersprachen mit vielen Workaround-Funktionen der Fall ist (z.B. für HTTP o. Typ-Operationen (wie z.B. bei PHP etc.)), dafür muss man sich neben den Libraries und dem Compiler selber darum kümmern.

Ich denke die persönlichen Unterschiede sind auch nicht das entscheidende, viel eher die relativen Vor und Nachteile und dass man sich bei einem bestimmten Projekt für eine bestimmte Programmiersprache entscheiden muss.

Man muss sich nur im Klaren darüber sein, wegen der Sicherheit, wie eine Programmiersprache (gerade wegen den Hintergrundoperationen) oberflächlich funktioniert.
 
sunnyday schrieb:
C und C++ bieten ansich ja keine großen Unterschiede, wie es z.B. bei vielen Programmiersprachen mit vielen Workaround-Funktionen der Fall ist (z.B. für HTTP o. Typ-Operationen (wie z.B. bei PHP etc.)), dafür muss man sich neben den Libraries und dem Compiler selber darum kümmern.

Wie ist das gemeint? C und C++ sind so unterschiedlich wie Tag und Nacht. Es gibt eine Schnittmenge gemeinsamer Syntax-Elemente, aber da ist auch schon Schluß mit den Gemeinsamkeiten.
 
Ist halt schwierig zu sagen. Ja C und C++ haben auch sehr große Unterschiede, aber andere Programmiersprachen haben noch größere.

Bei der Wahl zwischen C und C++ kann man am Ende sagen, dass man mit C auch alles machen kann und bei C++ viel mehr lernen und können muss. Beide Sprachen bieten aber verschiedene Plattformen/Entwicklerräume.
 
Zuletzt bearbeitet:
Ich weiß nicht welchen Wahrheitswert diese Statistik hat, aber schau mal hier rein: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Auch in Hochschulen lernt man meistens C + Java. Hat wohl seine Gründe ;)

PS: Spiele programmieren... das hatte wohl jeder mal in den Sinn...
Finde bei Spiele hängt es mehr von den Grafikern ab als von den Programmierern.
Zumindest wird man ohne ansprechnede Grafik kein so überzeugenedes Spiel herstellen können...
 
Das hat ja ideologische Züge hier. :D

Also wenn du wirklich vorhast längerfristig in die Richtung zu gehen, dann aufjeden Fall C++.
Warum? Gameengines leben von OOP. Und natürlich ist C++ industrieller Standard in der Branche. C ist jedoch - wie manche meinen - nicht veraltet. Die Programmierung mit OpenCL basiert z.b. auf C99. Allerdings ist das auch eher ne spezifische Anwendung. Also lern lieber C++ und wenn du für konkrete Dinge etwas in C brauchst, dann guck dir das in C an. Umgekehrt wäre der steinigere Weg.

Allerdings muss ich dich warnen, mit C++ hast du eigentlich kaum eine Chance, da großartig Geld mit verdienen, da die eigentlich betrachteten Probleme eher Informatiker, Mathematiker, Physiker usw. erfordern. Ausschließen kann man das natürlich nicht, bin über den Weg selbst kurz in der Branche aktiv gewesen, aber das is trotzdem eher die Ausnahme.

Python würd ich persönlich nicht empfehlen, lediglich eine gute Sprache um Programmieren zu unterrichten oder Probleme versuchen zu beschreiben bzw schnell eine Lösung zu finden. Also für den Anfang sicher auch nicht verkehrt, aber längerfristig gesehen, eher weniger geeignet. Java, naja, mag ich persönlich nicht, aber wenn du in die Mobilebranche willst (wo man als Laie/Quereinsteiger noch am ehesten Geld verdienen kann), sollte das die Wahl sein.

Die Grundkonzepte des Programmierens lernst du aber überall, auch wenn es in C/C++ evtl etwas schwieriger am Anfang sein wird.

Bzgl veraltet: Bei uns (Grundlagenforschung) arbeitet man auch noch mit Fortran, also im Grunde hat jede Sprache seine Daseinsberechtigung.

Ich weiß jetzt nicht wie alt du bist, aber ich hab damals mit 12 mit BlitzBasic/Blitz3D angefangen. Ist mittlerweile Freeware und man kommt sehr schnell, gerade im Spielebereich, zu brauchbaren Ergebnissen. Allerdings ist das hoffnungslos veraltet, kein OOP, basiert auf Dx7 (läuft aber nach wie vor auf neuen Systemen) und im professionellen Bereich wirst du damit eher ausgelacht :D Aber je nachdem, was du vorhast vllt auch ein Blick wert.
 
Zurück
Oben