von java auf c++ umsteigen - sinnvoll?

8 Antworten

C++ ist sehr mächtig und bietet sehr viele Möglichkeiten, von der Objekt-Orientierung bis zur Hardware-nahen Programmierung. Man kann C++ auf Geschwindigkeit und Effizienz trimmen, man kann viel mit rohen Zeiger programmieren, die Speicher direkt steuern, das aber auch lassen und dafür die Standard-Containier und sontige Standard-Tools verwenden. Man kann mit Qt GUI programmieren (dann wird man aber ggf. um das Zeigerverständnis nicht herumkommen). Aber: C++ ist keine Plattformsprache wie Java oder C#, hat keine integrierten Tools, um GUI (Fenster-Programme) zu entwerfen.

Die Sprache ist recht schwer, anders als bei Java oder C# kann bei der Code-Eingabe nicht gleich geprüft werden, ob das was Du progst Fehler verursacht oder zweifelhaft ist. Beim Compilieren gibt es zwar in bestimmten Situation Warnhinweise, jedoch gibt es immer noch sehr viele Fallstricke (was z.B. zu Yoda Conditions geführt hat). Das Debuggen in C++ ist schon etwas anderes als Debuggen in einer Sandkasten-Sprachen. Debuggen mit rohen Zeigern oder Debuggen von UB ist schon ein "Spaß".

Die vielen Möglichkeiten haben ihren Preis: Man kann viel falsch machen. Sauberkeit und Sicherheit haben in C++ einen gewissen Stellenwert.

Es lohnt sich auf jeden Fall, weil es das Verständnis erweitert. Das new in Java ist schlussendlich auch eine Zeigerkonstruktion, auch wenn man es für Java nicht wissen muss. Die Delegaten in C# sind Funktionszeiger etc. könnte man wohl weiterführen. Ich finde, man kann durch C++ manches besser verstehen.

(Man könnte sogar noch einen Schritt weitergehen und ein bisschen Assembler lernen, um die Rechnerarchitektur besser kennen zu lernen. Schlussendlich werden auch die schönsten OOP-Strukturen und die einfachsten Thread/Task-Tools aus Java irgendwann zu Maschinencode - das ist aber dann sehr weit von Java entfernt - mir persönlich hat asm sehr für Zeiger/Arrays, Funktionsverwendung etc geholfen,  das ist jedoch dann wirklich Geschmackssache)

Woher ich das weiß:Eigene Erfahrung – Hobby und teilweise beruflich

Ob das sinnvoll ist, kann dir hier niemand sagen, jede Sprache hat ihre Stärken und Schwächen. Es kommt also mehr darauf an, was Du machen willst.

Aber ich kann dich schon mal warnen:
C++ ist alles andere als leicht. Du musst sehr viel selber machen, worum sich bei Java oder C# die Runtime kümmert. Das kann allerdings auch ein Vorteil sein. Außerdem bietet C++, weil Du so viel selber machen musst/kannst sehr viele Fallstricke und Möglichkeiten, faszinierende Fehler und sehr schwer zu findende zu verursachen.

Woher ich das weiß:Beruf – C# Softwareentwickler seit 2013

was genau ist "fortgeschritten"..?

ich persönlich programmier seit ca. 5 Jahren in Java, seit einigen Monaten nun auch beruflich ... habe immer geglaubt ich bin "fortgeschritten", fange dann den ersten Tag zu arbeiten an und glaubte ich weiß 0 komma nix.

Dann jetzt letzte Woche gab ich einem Studenten Java-Nachhilfe, für den war ich der Experte schlechthin.
Es kommt immer auf den Vergleich an ;) ... aber egal

Es kommt sehr darauf an, was genau du später einmal programmieren möchtest, .. Java ist eigentlich in vielen Fällen eine gute Wahl.
C++ ist eine schnellere, aber auch komplexere Sprache, die man nicht so universell einsetzen kann

Zusammengefasst:
Willst du für "alle" Betriebssysteme inkl. Android programmieren, Webanwendungen oder normale, nicht extrem Rechenintensive Anwendungen machen, schnell zu einem Ergebnis kommen ... dann Java

Willst du Anwendungen machen, die die Geschwindigkeit des Rechners zu 100% ausnutzen, so fange mit C++ an.

Nein, nicht sinnvoll, würde ich sagen. Welche Vorteile erhoffst du dir von C++, außer dass die Sprache schwerer ist? Ich halte es für zielführender, eine Sprache richtig zu lernen, anstatt dass du zig Sprachen so'n bisschen kannst, aber keine richtig.

Als fortgeschrittener Java-Programmierer würde ich mir als nächstes Entwurfsmuster angucken.

Was meinst du mit 'umsteigen'?

Du kannst C++ lernen und nutzen, aber als 'Ersatz' würde ich es nicht betrachten.

Ich würde es folgendermaßen versuchen zu erklären: 

Du bist Architekt geworden und hast dich auf Hochhäuser spezialisiert um überhaupt als Architekt zu lernen.

Jetzt spielst du mit dem Gedanken, du würdest gerne auch Parkhäuser entwerfen: Grundlegendes kannst du bereits. Sobald du die Unterschiede verinnerlicht hast, wird das kein Problem mehr sein.

Es ist grundsätzlich nicht falsch, wenn du beides kannst. Allerdings solltest du dir die Frage stellen: Baust du dann wirklich auch Parkhäuser? Oder möchtest du nur Hochhäuser bauen, die auf dem Prinzip eines Parkhauses aufgebaut sind?

Ich hoffe es wird so etwas verständlicher worauf ich hinaus will.

SEHR schön erklärt ^^ danke

0

Was möchtest Du wissen?