ubuntuusers.de

C++ oder Java

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

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13174

NORACSA schrieb:

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.

Da unterschätzt Du die Nöte der Industrie, geeignetes Personal zu bekommen. Außerdem ist man ja nicht auf eine Sprache festgenagelt. Im Zweifel würde ich auch eher eine fähige C++-Entwicklerin einstellen, die zum Team passt, und sie Java lernen lassen als einen schlechteren Java-Programmierer. Allerdings bin ich in der "komfortablen" Lage, dass mein Team beide Sprachen braucht (neben ein paar anderen). ☺

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17604

Wohnort: Berlin

NORACSA schrieb:

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.

Wenn es die gibt.

Wer beruflich auf Windows C++ programmiert, der nutzt ja i.d.R. nicht den g++ - Compiler. Und vielleicht auch kommerzielle Bibliotheken, und dann wird es schon eng.

matze31

(Themenstarter)

Anmeldungsdatum:
25. Oktober 2015

Beiträge: 788

Vielen Dank für die Antworten. Ich werde erstmal doch Java nehmen. C++ kann man hinterher immer noch machen wenn man es braucht.

Udalrich

Anmeldungsdatum:
15. Mai 2019

Beiträge: 533

Falls das eigene Programm plattformübergreifend laufen und eine Oberfläche (GUI) haben soll, kann ich diesen nüchternen Entwicklerbericht von Anfang des Jahres empfehlen; leider nur in Englisch:

Sad state of cross platform GUI frameworks

Nach intensiver Untersuchung wählt der Autor ebenfalls Java als Sprache und Javas Swing-II (JafaFX) als GUI.

Des Autors Schlüssen kann ich ganz zustimmen, nach mehreren Jahren Erfahrung mit Java, C/C++ und GUIs.

realsuamor

Avatar von realsuamor

Anmeldungsdatum:
16. Mai 2010

Beiträge: 207

Wohnort: Renningen (BaWue)

Java vs. C++ (vs C#) sollte man nicht an der Sprache festmachen, sondern am Anwendungsgebiet.

Von der reinen Sprache her (meiner groben Erfahrung nach): Es gibt keinen großen Unterschied mehr, C++ ist wegen Multiparadigma tendentiell schwerer zu erlernen, zumindest gewisse Themenbereiche wie Templates. Oder diese Themen einfach weitesgehend im beruflichen Alltag vermeiden, da man da ja kein Spezialist ist (funtkioniert meist recht gut ☺)

Aber man muß auch das "Framework" beachten. Ohne GUI schätze ich mal C# > Java > C++, wobei C++ immer besser wird und auch für Einsteiger immer leichter wird. Im beruflichen Alltag ohne GUI: C# oder Java haben i.d.R die Nase vorn, außer bei bestimmten Themen wie Embedded oder Multi-Plattform. Da ist C# hinter C++ / Java.

Mit GUI:

a) Desktop: C# / C++ > Java (mein letzter Kenntnisstand tut sich in Sachen Framework wenig im Vergleich zu Frameworks für C++ und C#) C# gibt es fast nur unter Windows und sehr viel seltener auch mal unter Linux

b) Embedded (Android, IOS, und / oder spezielle Plattformen): C++ > Java (C# ist mir nichts bekannt). Frameworks sind meistens sehr plattform-spezifisch (Ausnahme Qt, evtl. noch Gtk und einige ältere, die ich nicht kenne)

Es hängt letztendlich davon ab, in welchem Bereich Du entwickeln möchtest, welche andere Computer(architektur) Kenntnisse du hast und wo Du beruflich hinmöchtest.

Sonstiges

Alle drei Sprachen können nativ oder in einer VM laufen. Alle drei Sprachen haben hervorragende IDE, die darin unterstützen, so gut wie alle typischen Fallen zu beheben (Stichwort Lint). Man muß sich mit diesen Tools auseinandersetzen. Und man muß seinen eigenen Code hinterfragen (Performance, Sicherheit etc.). Das ist unabhängig von der gewählten Sprache. Es gibt keine Sprache, die sicherer ist als eine andere, auch wenn manche Leute andere Meinungen dazu haben. Es gibt dafür viele unterschiedliche Programmierstile. Fehler sind niemals der Programmiersprache anzulasten. Frameworks müssen gegenüber Deinen Kollegen und Teamleitern sehr häufig regelmäßig gerechtfertigt werden. Gibt es irgendein Problem wird das nicht der schlechten Architektur oder dem Programmierstil angelastet, sondern eben dem Framework, weil das viel bequemer ist.

Weitere Empfehlungen:

a)Du solltest unbedingt eine zu Deiner häufig eingesetzten Programmiersprache + Framework passende Skriptsprache lernen. Typische Beispiele sind PHP (Java), Basic (C#), Python (C++). Javascript oder für ein Framework spezifische Skriptsprachen kommen ebenfalls häufig vor.

b) Lerne viel über Softwarearchitektur (v.a. Entwurfsmuster und Refaktoring) und ein wenig über Softwareentwicklungsprozesse.

c) Lerne Softwaretesting (bspw. Manuelle Tests, Unit Tests, Modulare Tests, Integrationstests, Systemtests)

Ich selbst bin FullStack C++ Softwareingenieur mit Schwerpunkt Qt / Embedded (Android + IOS werden unterstützt, habe aber nur mit Android ein wenig Erfahrung).

Ich kenne zwar nicht JavaFX, aber ich halte Qt Framework für das am meisten ausgereifteste GUI Toolkit, wenn man auf mehreren Plattformen unterwegs ist. Wenn man nur auf Windows unterwegs ist, würde ich C# + entspr. GUI wählen (aus Firmensicht, nicht aus privater Meinung heraus). Der oben verlinkte Artikel über GUI ist leider ziemlich meinungsbasiert und ich kann viele der genannten Standpunkte aus professioneller Sicht nicht nachvollziehen. Evtl. ist dieser Link hilfreicher: https://www.slant.co/topics/983/~best-cross-platform-gui-toolkits

Dakuan

Avatar von Dakuan

Anmeldungsdatum:
2. November 2004

Beiträge: 6488

Wohnort: Hamburg

C++ ist wegen Multiparadigma tendentiell schwerer zu erlernen ...

👍

wobei C++ immer besser wird und auch für Einsteiger immer leichter wird ...

Das kann ich so nicht bestätigen. Im Mikrocontroller Forum gab es schon Diskussionen darüber, dass für C++ gefühlt alle 2 Jahre ein neuer Standard verabschiedet wird, der die Sache noch unübersichtlicher macht.

Mich erinnert das Ganze an die Geschichte von Multics, was auch alles können sollte. Aus der Abgespeckten Version ist dann Unix entstanden.

Es hängt letztendlich davon ab, in welchem Bereich Du entwickeln möchtest ...

Ich denke, dass ist der entscheidende Punkt. Also wenn man sich im Bereich Mikrocontroller oder digitaler Signalverarbeitung tummelt, geht die Tendenz eher in Richtung C und weniger in Richtung COBOL (obwohl einige Linux Hardliner ja für alles die Textvariante fordern 😈 ).

homer65

Avatar von homer65

Anmeldungsdatum:
8. November 2005

Beiträge: 574

Wohnort: bochum, germany

realsuamor schrieb:

Java vs. C++ (vs C#) sollte man nicht an der Sprache festmachen, sondern am Anwendungsgebiet.

Dem kann ich nur uneingeschränkt zustimmen.
Überlege Dir zuerst was Du erreichen willst.

Antworten |