Seite 2 von 2

BeitragVerfasst: 04.11.2009, 19:43
von DawnCrow
[quote=Bauer87,index.php?page=Thread&postID=38733#post38733]Wenn man mit C einsteigt, gewöhnt man sich an prozeduale Programmierung und wird die Vorteile von C++ nicht unbedingt besonders gut nutzen. Allerdings lernt man so quasi zwei Sprachen zum Preis von einer. C ist aber leider (bei umfangreichen Projekten) sehr schwer zu warten. Das sieht man z.B. gut an an Windows9x: Das ist ständig abgestürzt, weil ständig irgendein Pointer irgendwohin gezeigt hat, wohin er nicht zeigen sollte. Vorteil von C ist die absolute Hardwarenähe. Man implementiert quasi genau das, was der Rechner auch macht. Damit bekommt man ein gutes Gefühl für den Rechner.

Wenn man mit C++ einsteigt, wird man nicht unbedingt C lernen, verliert also die Kompatibilität und lernt weniger über die Hardware. Allerdings wird man sehr intuitiv mit Objektorientierung umgehen, was für C-Umsteiger oft schwierig ist. Vor allem da C-Code fast 1:1 als C++ läuft, schreiben viele weiter C und wechseln quasi nur den Compiler. C++ ist etwas abstrakter als C, man kann sich nicht unbedingt überlegen, was der Computer machen muss, sondern was die Objekte für Eigenschaften haben sollen. Dafür sind die einzelnen Objekte gut zu warten und man kann so recht leicht Teile des Programms austauschen, wenn man einen Fehler findet. (Vor allem, weil durch Kapselung feste Schnittstellen zwischen den Objekten definiert sind.) Damit bekommt man ein eher ein Gefühl für das Programm an sich.[/quote]
Ich gebe dir recht bis auf ein paar punkte:
  • Bei Windows9x lag das auch an den Stümpern zwischen der Tastatur und dem Stuhl. Heute gibts für genau solche Fälle Tools wie z.B. Valgrind und co.
  • Von der Objektorientierten Programmierung kam ich persönlich sehr gut weg. mir hat das wohl nie so recht gefallen(schließe ich zumindestens daraus), wobei ich natürlich alle vorteile sehe und es jeder für sich entscheiden muss

BeitragVerfasst: 04.11.2009, 20:31
von Bauer87
Bei Windows 9x gab es u.a. keinen Mechanismus, der Pointer auf nicht von der Anwendung reservierten auf Speicher zu Segfaults macht. Stattdessen konnte jedes Programm überall schreiben (sogar im Bereich, der Windows gehört), was z.T. zu sehr schlimmen Fehlern geführt hat. Außerdem konnte Speicher (und Prozessorzeit) den Programmen nicht mal entzogen werden. Das heißt, die Programme mussten selber alles wieder abgeben.
Das liegt (auch) daran, dass es in C geschrieben wurde und der Code offenbar recht unübersichtlich war. Ansonsten hätten sie diese grundlegenden Features ohne Rewrite (also Windows NT) eingebaut. Aber ja: Der Fehler sitzt meist vor dem Bildschirm. (Der stand aber schon all zu oft in Redmont. :D )

Außerdem habe ich gesagt, dass man in Objektorientierung nicht gut reinkommt, wenn man lange prozedual programmiert hat. Anders herum kann es gut sein. Geht dann ja auch gar nicht, in C lassen sich halt nicht wirklich Objekte definieren. (Strukturen sind halt nicht das gleiche wie Klassen.) Bin halt mit Java eingestiegen und habe dann C++ gemacht. Gab überall Objekte. (Vielleicht schreib ich mal Assembler, dann weiß ich mehr.)

Zu Java: Java war lange closed und ließ sich nur in der proprietären Umgebung nutzen. Außerdem war die Performance (zumindest recht lange) echt mies. Das einzige noch existierende Problem dürfte die Optik sein: Es passt sich halt nicht in die Umgebung ein.

BeitragVerfasst: 04.11.2009, 22:54
von ReCon
@Bauer87: Da mit Java muss ich dir zustimmen. Es könnte schöner sein, wobei es ja eigentlich um die Handhabung geht und nicht um die Schönheit :)
Ich denke ich werde es mal mit Java versuchen. Ich habe vorher mal einen Versuch mit Mono gestartet, aber das bringt nicht wirklich etwas. Allein wenn ich die System.Windows.Forms einbinde funktioniert das ganze Projekt nicht mehr, da mit GTK gearbeitet wird und es keinen Designer für Windows Forms gibt. - Sowieso fahre ich im Bereich plattformunabhängig mit Java besser :D

BeitragVerfasst: 07.11.2009, 21:14
von Matty265
Ok, ich habe mich mal für C++ entschieden. Ich habe auf dem Windows Rechner meines Vaters schon ein paar basics mit Dev C++ gemacht.
Gibt es einen ähnlichen Editor für Linux? Die Dateien, die Dev C++ ausspuckt sind *.cpp datein

grüße

BeitragVerfasst: 07.11.2009, 21:17
von leszek
Gedit, VIM, Geany, Scite uvm.

Es gibt sie wie Sand am Meer. Man muss sich nur für den richtigen entscheiden.
Ich persönlich finde C++ mit QT4 besonders einfach. Dort gibt es das wirklich ultra geniale Tool (IDE) QT Creator.

BeitragVerfasst: 07.11.2009, 21:24
von Matty265
[quote=leszek,index.php?page=Thread&postID=38772#post38772]Gedit, VIM, Geany, Scite uvm.

Es gibt sie wie Sand am Meer. Man muss sich nur für den richtigen entscheiden.
Ich persönlich finde C++ mit QT4 besonders einfach. Dort gibt es das wirklich ultra geniale Tool (IDE) QT Creator.[/quote]

Ups, ich hätte es vllt etwas besser beschreiben sollen.
Ich bräuchte halt auch eine integrierte Compilierfunktion, also wenn ich F9 oder so drücke, dass er es kompiliert und anzeigt

grüße

BeitragVerfasst: 07.11.2009, 23:08
von Bauer87
Ich benutze MonoDevelop, compiliere aber im Terminal mit Make. (Obwohl MonoDecelop das eigentlich kann.) Die Qt-Tools sind aber auch echt toll.

BeitragVerfasst: 07.11.2009, 23:36
von Matty265
Ich benutze Code::Blocks, das tut alles was ich brauche.

Danke

BeitragVerfasst: 07.11.2009, 23:37
von nasenbaer
[quote=Matty265,index.php?page=Thread&postID=38771#post38771]Gibt es einen ähnlichen Editor für Linux?[/quote]

Code::Blocks ist quasi der inoffizielle Dev-Cpp-Nachfolger...
Ansonsten gibt es da aber noch einige andere, such nach einer "C++ IDE (Integr. Dev. Env.)"

Ich benutze selber auch nur einen ganz normalen Editor (gedit) und dazu eine shell und make^^