ubuntuusers.de

C++ oder Java

Status: Gelöst | Ubuntu-Version: Xubuntu 18.04 (Bionic Beaver)
Antworten |

matze31

Anmeldungsdatum:
25. Oktober 2015

Beiträge: 788

Ich stehe gerade vor der Entscheidung mich zwischen C++ oder Java zu entscheiden. Welche Programmiersprache würdet ihr im allgemeinen empfehlen? Die Frage ist nur allgemein gestellt, nicht Hardware oder Betriebssystem spezifisch.

DJKUhpisse Team-Icon

Supporter, Wikiteam
Avatar von DJKUhpisse

Anmeldungsdatum:
18. Oktober 2016

Beiträge: 18199

Wohnort: in deinem Browser, hier auf dem Bildschirm

Java hat den Vorteil, dass das zur Kaufzeit interpretiert wird, ergo braucht es nur einen Build für alle unterstützten Systeme. Bei C++ ist das meines Wissens anders, da braucht es dann für unterschiedliche Systeme/Architekturen unterschiedliche Builds.

NORACSA

Anmeldungsdatum:
31. Januar 2010

Beiträge: 180

Diese Frage ist so als ob man fragt ob ein Messer oder eine Gabel empfehlenswerter ist. Generell würde ich aber mit etwas anfangen das keine zwingenden objektorientierten Elemente enthält. Da ist C/C++ schon mal ganz OK. Oder auch Python.

DJKUhpisse Team-Icon

Supporter, Wikiteam
Avatar von DJKUhpisse

Anmeldungsdatum:
18. Oktober 2016

Beiträge: 18199

Wohnort: in deinem Browser, hier auf dem Bildschirm

Klar, bei Java braucht man das z.B. schon für die Texteingabe über Tastatur in der Konsole und für grafische Oberflächen sowieso.

NORACSA

Anmeldungsdatum:
31. Januar 2010

Beiträge: 180

DJKUhpisse schrieb:

Klar, bei Java braucht man das z.B. schon für die Texteingabe über Tastatur in der Konsole und für grafische Oberflächen sowieso.

Bei Java und C# ist schon der Boilerplate-Code(also der zwingend notwendige generische Code, als Erklärung für Programmieranfänger) ansatzweise objektorientiert. Und meistens wird das beim Unterrichten mit den Worten "Hinterfragt es mal nicht/ist halt so/wird später erklärt" übergangen.

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13174

matze31 schrieb:

Ich stehe gerade vor der Entscheidung mich zwischen C++ oder Java zu entscheiden. Welche Programmiersprache würdet ihr im allgemeinen empfehlen? Die Frage ist nur allgemein gestellt, nicht Hardware oder Betriebssystem spezifisch.

C++ bietet unglaublich mehr Wege sich in den Fuß zu schießen - etwas, das ich im 21. Jahrhundert nur in Kauf nehmen würde, wenn das letzte Quäntchen Performance oder direkter Zugriff auf Hardware benötigt werden. Außerdem ist die Standardbibliothek von Java deutlich umfangreicher - bei C++ hat man oft die Wahl zwischen mehreren Bibliotheken für eine Funktionalität, und dann kommen Späße wie inkompatible Speicherverwaltung dazu.

DJKUhpisse schrieb:

Java hat den Vorteil, dass das zur Kaufzeit interpretiert wird, ergo braucht es nur einen Build für alle unterstützten Systeme.

Leichte Korrektur: Java wird schon lange nicht mehr nur interpretiert. Stattdessen überwachen moderne JVMs die Ausführung und bemühen JIT-Kompilierung. Die JVM ist überhaupt ein sehr beeindruckendes Stück Software, das nicht nur effiziente Garbage Collection, sondern auch reichlich Möglichkeiten bietet, ein ausgeführtes Programm zu untersuchen (Profiling, Locks...).

Bei C++ ist das meines Wissens anders, da braucht es dann für unterschiedliche Systeme/Architekturen unterschiedliche Builds.

Stimmt.

NORACSA schrieb:

Diese Frage ist so als ob man fragt ob ein Messer oder eine Gabel empfehlenswerter ist. Generell würde ich aber mit etwas anfangen das keine zwingenden objektorientierten Elemente enthält. Da ist C/C++ schon mal ganz OK. Oder auch Python.

Python ja. C++ ist m.E. keine Sprache zum Programmierenlernen. Wenn es denn darum im aktuellen Fall geht. Wir haben damals an der Uni mit Pascal gelernt. Ich finde immer noch, dass das eine gute Sprache zum Lernen ist, obwohl die Verwendung außerhalb von Lernsituationen (und vermutlich auch insgesamt) sehr gering sein dürfte. Die Sprache ist aber sehr explizit und erlaubt gut strukturiert zu programmieren. (Ein bisschen Nostalgie muss schon sein.)

Wenn man lernen möchte, was Objektorientierung alles bedeuten kann, ist Eiffel auch eine sehr interessante Sprache. Ich glaube, es gibt keine andere Sprache, die so viele Arten von Vererbung und einige weitere Eigenschaften enthält, anhand derer man eine Menge über Programmierkonzepte lernen kann (z.B. Design by Contract).

Aber ich schweife ab. Für dieses Thema lautet meine Antwort "Java".

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17604

Wohnort: Berlin

Wenn Du viel hardwarenahes programmieren willst, Microcontroller, eigene Treiber und so, dann C++ oder C.

Ansonsten ein klarer Fall für Java. Die Garbagecollection ist ein gewichtiges Argument. Plattformunabhängigkeit und ein umfangreicheres Gesamtpaket sprechen dafür. Allerdings ist die Syntax schon mal sehr ähnlich zwischen beiden; es ist also möglich erst das eine zu lernen um dann vieles wiederzuerkennen, wenn Du das andere auch noch lernst.

DJKUhpisse und NORACSA kennen offenbar die JShell nicht - damit muss man für simple Sachen keinen Boilerplate mehr bemühen.

matze31

(Themenstarter)

Anmeldungsdatum:
25. Oktober 2015

Beiträge: 788

Erstmal vielen dank für die Antworten. Ich habe mir als Hobby Python angeeignet und habe dort, ich sag mal solide (Grund)kenntnisse. Einfache Scripte mit z.b. TKinter ist kein Problem. Ich mache viel mit Python, wenn ich etwas automatisieren möchte.

Ich mache jetzt einen IT Lehrgang, darin muss ich jetzt entscheiden zwischen Java und C++. Natürlich muss man das dort auf Win lernen 😕 , aber künftig bleibe ich trotzdem (privat) bei linux.

Ich meine privat wäre vielleicht C++ für mich interessant weil man z.B. Treiber Hardwarenahe so programmieren kann.

Aber hier geht es in erster Linie um das Gewerbliche. Was zurzeit mehr gefragt ist Java oder C++.

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13174

matze31 schrieb:

Aber hier geht es in erster Linie um das Gewerbliche. Was zurzeit mehr gefragt ist Java oder C++.

Da gibt es reichlich Seiten im Netz, die Statistiken veröffentlichen. Manche nehmen Google-Suchen zur Grundlage, manche Anfragen bei Stackoverflow, manche offene Stellen in Jobportalen. Muss man alles mit Vorsicht genießen, aber vielleicht möchtest Du ja trotzdem mal einen Blick riskieren. Ich bleibe bei meiner Empfehlung für Java.

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17604

Wohnort: Berlin

Gerade wenn man selbst Linux benutzt, im Job aber Windows benutzen muss, hat Java den Pluspunkt, dass Du den Code zum anderen System mitnehmen und bruchlos weiterarbeiten kannst.

NORACSA

Anmeldungsdatum:
31. Januar 2010

Beiträge: 180

matze31 schrieb:

Aber hier geht es in erster Linie um das Gewerbliche. Was zurzeit mehr gefragt ist Java oder C++.

Im Endeffekt ist beides gefragt und das wird sich auch nicht so schnell ändern. Außerdem ist diese Motivation zum lernen einer Sprache die falsche. Außer, dass man vielleicht keine völlig tote Sprache lernen sollte. Aber selbst das ist besser als keine Sprache. Denn kann man eine, kann man alle!

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13174

NORACSA schrieb:

Außer, dass man vielleicht keine völlig tote Sprache lernen sollte. Aber selbst das ist besser als keine Sprache. Denn kann man eine, kann man alle!

Jetzt neu! Latein++ mit noch mehr Gelagen! Hol Dir Deine freie Kopie! Nur für kurze Zeit!

NORACSA

Anmeldungsdatum:
31. Januar 2010

Beiträge: 180

user_unknown schrieb:

Gerade wenn man selbst Linux benutzt, im Job aber Windows benutzen muss, hat Java den Pluspunkt, dass Du den Code zum anderen System mitnehmen und bruchlos weiterarbeiten kannst.

Wobei man ja mit dem gleichen Compiler und den gleichen Compileroptionen und Bibliotheken unter Windows auch nur neu kompilieren muss.

rklm schrieb:

NORACSA schrieb:

Außer, dass man vielleicht keine völlig tote Sprache lernen sollte. Aber selbst das ist besser als keine Sprache. Denn kann man eine, kann man alle!

Jetzt neu! Latein++ mit noch mehr Gelagen! Hol Dir Deine freie Kopie! Nur für kurze Zeit!

😀 😀 😀

homer65

Avatar von homer65

Anmeldungsdatum:
8. November 2005

Beiträge: 574

Wohnort: bochum, germany

Kann nur von unserer Firma sprechen. Da wird ca 90 Prozent in Java und 0 Prozent in C bzw C++ programmiert. Wir sind eine Versicherung.
Andererseits sind Entwickler im Moment rar. Man würde sicher auch einen C/C++ Programmierer einstellen und ihn Java lernen lassen.
Keine Ahnung wie es in anderen Firmen aussieht.

NORACSA

Anmeldungsdatum:
31. Januar 2010

Beiträge: 180

homer65 schrieb:

Man würde sicher auch einen C/C++ Programmierer einstellen und ihn Java lernen lassen.

Sorry, aber das klingt für mich nach einer völlig aus der Luft gegriffenen Meinung.

Antworten |