Ok, erstmal vielen Dank MagicMagor! Ich hab mir auch vorhin noch den von dir erwähnten gepinnten Thread angschaut, und mich dort ein bisschen informiert. Das mit den Compilern, IDEs usw. habe ich auch bis hierhien alles verstanden. Eine kleine Frage habe ich dennoch:
Die Programmiersprache C++ bleibt ja immer die gleiche. Warum gibt es dann verschiedene Compiler (die einen sind kostenlos die anderen wieder nicht...)? Muss ich für jeden Compiler, ob Bloodshed, Borland etc. (die ja alle für C++ sind) etwas anderes, neues lernen? Worin besteht der Unterschied?
Die verschiedenen Entwicklungsumgebungen haben einfach einen unterschiedlichen Umfang an Funktionen. Zum Beispiel kannst du mit MS Visual Studio neue Fenster mit der Maus zurechtziehen und Späße, wie ein Iconeditor sind auch inklusive. Dann gibt es noch zahlreiche sog. Anwendungsasistenten, die einem das Leben mehr oder weniger einfacher machen. Kostenlose IDE's wie Dev-Cpp bieten eben nicht soviel Schnickschnack. Wenn du C++ lernst, ist es eigentlich egal welchen Compiler/welche IDE du benutzt (hauptsachte sie unterstützt C/C++). Ich würde dir zu einer kostenlosen IDE wie Dev-Cpp raten. Viele Funktionen von MS VC wirst du als Anfänger eh nicht nutzen können oder sie bringen nichts.
Die Programmiersprache C++ bleibt ja immer die gleiche. Warum gibt es dann verschiedene Compiler (die einen sind kostenlos die anderen wieder nicht...)? Muss ich für jeden Compiler, ob Bloodshed, Borland etc. (die ja alle für C++ sind) etwas anderes, neues lernen? Worin besteht der Unterschied?
...
Warum gibt es verschiedene Textverarbeitungsprogramme? Weil jede Firma ein Stückchen vom Kuchen haben möchte. Genauso ists beim Compiler . Der Borland-Compiler (von dem ich allerdings NUR abraten kann. Ich muss gerade damit arbeiten, und das Ding ist wirklich alles andere als einfach oder standard-konform) wurde ja ursprünglich mit dem kostenpflichtigen C++ Builder, also Borlands C++ IDE ausgeliefert, genauso wie der MSVSCC (Microsoft Visual Studio C Compiler), der ja auch vorher nur Bestandteil von MSs IDE war. Intel hat auch einen eigenen Compiler, der natürlich die darunterliegende Architektur am besten kennt, und dementsprechend optimieren kann. Im Falle des GCC ist das anders, der wurde von Anfang an als freier Compiler entwickelt.
Der Unterschied liegt eigentlich nur im Detail. Die Compiler sind von der Anwendung her sehr unterschiedlich, ursprünglich halt auf die IDE zugeschnitten. Wenn du allerdings eine IDE verwendest, dürftest du davon nicht viel mitbekommen, zumindest am Anfang nicht. Auch ist die Implementierung eine andere, jeder Compiler optimiert seinen Code auf seine Weise.
Der gravierenste Unterschied liegt allerdings in der Implementierung der Bibliotheken. Microsoft und Borland haben viel eigenes Zeug zur Sprache und deren Bibliotheken hinzugefügt, die nicht so im Standard enthalten sind, und einem Programmierer oft das Leben schwer machen können. Viele Bibliotheken existieren bei anderen Compilern nicht, oder verhalten sich anders (beliebtes Beispiel: conio.h). Ein anderes Beispiel ist die Funktion strcat.
Im GCC:
im Borland Compiler:
Bei einfachen Tasks natürlich kein Problem, kann aber beim Schreiben eigener Bibliotheken durchaus zu Fehlern führen, ganz zu schweigen von der Unlesbarkeit.
Ok, alles klar! Danke an euch beiden. Ich werds auch mal mit dem Compiler Dev-C++ versuchen. Aber äh, naja: C++ sieht auf den ersten Blick sehr,... sehr kompliziert aus.
Mal sehen wie ich damit zurecht komme.