Objektorientiertes Programmieren: C++ oder Java?

4 Antworten

Kommt vielelicht auch ein wenig darauf an was du in weiteren Semestern hast, wir haben im ersten Semester Java gelernt, im 2. hatten wir Webentwicklung mit HTML, CSS, Javascript, Jquery(ist aber schon etwas her), im 3. Semester mussten wir für Compilerbau C(89 Standard) lernen.
Ich persönlich finde Java etwas angenehmer, grade weil man dort nicht auf Memorymanagement o.ä. achten muss, sprich verwendeten Speicher wieder freigeben o.ä.

Woher ich das weiß:Studium / Ausbildung – Informatik Ausbildung
ichweissnich497 
Fragesteller
 16.08.2022, 22:42

im ersten Semester hatten wir C und jetzt im dritten entweder Java oder C++

0
CoSci  16.08.2022, 22:46
@ichweissnich497

Kommt immer auf die Uni und den Prof an, ich weis die Semester nach uns hatten teilweise irgend einen Java ableger(komme nicht mehr auf den Name) gelernt, wodurch diese im 2. Semester Java komplett neu lernen mussten weil das 2. Semester auf Java aufgebaut hat und sich jeder ein 800 Seiten Java Buch kaufen durfte und durcharbeiten durfte mit wöchentlichen Quizzen(hat der damalige Prof ziemlich verkackt) oder auch teilweise javascript gelernt wurde

1
CoSci  16.08.2022, 22:48
@CoSci

Processing, das war die Sprache die einmal im ersten Semester gelernt wurde und im 2. Semester ging es dann um weiterführende Java Techniken, Gui, OOP, etc. was niemand aus dem Semester kapiert hatte, weshalb quasi das ganze erste Semester nochmal im 2. Semester durchgenommen werden musste

1

Wahrscheinlich ist es geschickter, Java zu wählen, denn:

C++ hat sich zu einer sog, "eierlegenden Wollmilchsau" entwickelt (was bedeutet, dass diese Sprache sehr viel umfasst, was man kaum je benötigen wird). Ich selbst finde es schon lange geschickt, nur ein kleines Subset von C++ zu nutzen, das nicht mehr ist als C ist erweitert um das Klassenkonzept aus C++ (= so dass objektorientierte Programmierung möglich wird).

Enterprise (Groß-) Anwendungen werden heute fast ausschließlich in Java implementiert — da sie das deutlich robuster und viel besser wartbar macht als in C++ implementierte Anwendungen.

Valentin1720653  16.08.2022, 22:31

Ich würde dir da sehr stark wiedersprechen...

Das Problem was C++ in meinen Augen hat, ist dass es noch immer möglich ist C++ von 1998 zu schreiben und man desinteressierte Dozenten hat die genau das machen.

Das neuste C++ braucht sich vor anderen Sprachen definitiv nicht verstecken, und auch wenn die Möglichkeiten vielleicht teils etwas viel sein mögen, so benutzt meiner Ansicht nach jeder der aus der Sprache C mit Klassen macht die Sprache falsch.

Ich will hier gar nicht alles aufzählen, aber es gibt so viele Dinge die C++ cool machen.

-> Objektorientierung

-> Operatorüberladung

-> Generics / Templates

nur um ein paar zu nennen.

Schon alleine Smart-Pointer sind für mich ein Grund c++ statt c zu verwenden.

Das Problem ist wirklich dass man an Hochschulen teilweise C++ von 1998 beigebracht bekommt, und dann ist es halt c mit klassen...

1
grtgrt  16.08.2022, 22:51
@Valentin1720653

Java (und das nach seinem Vorbild erdachte C#) sind die einzigen Programmiersprachen, deren Laufzeitsystem völlig anderer Art ist als das von C++ und anderer Programmiersprachen.

Eben deswegen sind in Java oder C# geschriebene Anwendungen deutlich robuster — und vom Code her weit besser zu verstehen, also besser wartbar — als in C++ geschriebene.

Ich sage das, obgleich ich selbst statt Java lieber ein hinreichend kleines Subset von C++ verwende, das kaum mehr ist als C erweitert um das Klassenkonzept aus C++ (und ggfs. noch Templates).

0
Valentin1720653  16.08.2022, 22:59
@grtgrt

*ggf auch Templates... Joa, dann hast du bei weitem kein "kleines erweitertes C mehr" da alleine generics viel mehr ist als die ganze Sprache C.

Dass Java Code leichter zu warten / verstehen ist finde ich nicht.

Ich meine, nicht ohne Grund gibt es eine Reihe von sprachen die auf der JVM laufen und dazu Designed würden Java besser zu machen (Scala, kotlin zB.)

Schon alleine dass man in Java nicht ohne eine Klasse ein Programm schreiben kann ist total dämlich und ich muss mir jedes Mal an den Kopf fassen...

Wenn du C mit Klassen willst, dann ist c++ definitiv die falsche Sprache. Das was die Sprache cool macht kommt nicht von 1998.

0
grtgrt  16.08.2022, 23:04
@Valentin1720653

Natürlich ist das von mir genutzte Subset mehr als C, aber halt auch ohne vieles aus C++, welches ich als nicht wirklich notwendig erachte.

0
grtgrt  16.08.2022, 23:07
@Valentin1720653
Dass Java Code leichter zu warten / verstehen ist finde ich nicht.

Dennoch ist es so. Das weiß jeder, der schon mal große Mengen von Code verstehen wollte, die er nicht selbst geschrieben hat.

0
Valentin1720653  16.08.2022, 23:08
@grtgrt

Ja das kann ich irgendwie nachvollziehen, aber dann ist das beste einfach eine andere Sprache zu verweden...

C++ sollte man nur Nutzen wenn man die Features der Sprache auch nutzen will.

0
grtgrt  16.08.2022, 23:09
@Valentin1720653

Das ist der Standpunkt fast aller C++ Fans — aber sicher nicht meiner: aus leidvoller Erfahrung heraus.

0
Valentin1720653  16.08.2022, 23:14
@grtgrt

Also ich kann dir sagen dass du noch nie ernsthaft mit generics / Templates rumgespielt hast :)

Klar, das zu lernen ist wirklich nicht einfach, aber wenn man Mal so ein wenig dahinter kommt ist es einfach nur cool was man damit alles machen kann

0
grtgrt  16.08.2022, 23:14
@grtgrt

In Java oder C++ geschrieben Klassenbibliotheken sind weit besser verständlich als z.B. Boost (die derzeit umfassendste in C++ geschriebene).

0
grtgrt  16.08.2022, 23:19
@Valentin1720653

Dass die Templates inzwischen Glanzstück von C++ sind, weiß ich.

Als ich sie aber (in meiner Rolle als Systemarchitekt) 1996 meinem Team empfohlen habe, hat man mich nach Projektende dafür verflucht. Der durch uns damals genutzte Compiler war offensichtlich den Templates noch keineswegs gewachsen.

0

Es kommt drauf an.

Ich würde sagen dass Java die einfachere Version ist, da es vieles was man in C++ manuell machen muss automatisch macht. Einen Garage Collector hat C++ zb nicht, Java schon.

An sich bin ich aber überhaupt kein Fan von Java... Die Sprache hat so viele unschöne eigenschaften... Schon alleine dass man auf OOP gezwungen wird und keinen Funktionalen Code schreiben kann geht mir total gegen den Strich.

Es gibt eine ganze Klasse von Programmiersprachen die Auf der JVM laufen und nur Designed wurden Java besser zu machen wie scala oder Kotlin.

C++ ist objektiv die etwas schwierigere Wahl, hat aber anders als Java noch wirklich Grund in einigen Hardwarenahen und Performanceintensiven Bereichen genutzt zu werden.

Dazu lernt man mehr Konzepte, da C++ einfach mehr kann bzw. man mehr selbst machen muss

Long stroy short, ich würde C++ nehmen, Java ist als Einstieg aber auch nicht verkehrt.

Die Chance dass du am Ende mit C++ ernsthaft was machen willst ist höher als mit Java.

Kommt drauf an in welche Richtung du dich orientieren willst. C++ ist jedenfalls vielseitiger von den Anwendungen als Java.

Für den Einstieg in OOP ists aber vermutlich komplett egal ob du Java oder C++ verwendest. Beide Sprachen sind dafür gleich gut geeignet wobei Java einfacher zu verwenden ist als C++.