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++ oder Java
Anmeldungsdatum: Beiträge: 788 |
|
Supporter, Wikiteam
Anmeldungsdatum: 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. |
Anmeldungsdatum: 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. |
Supporter, Wikiteam
Anmeldungsdatum: 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. |
Anmeldungsdatum: Beiträge: 180 |
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. |
Projektleitung
Anmeldungsdatum: Beiträge: 13174 |
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.
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...).
Stimmt.
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". |
![]() Anmeldungsdatum: 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. |
(Themenstarter)
Anmeldungsdatum: 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++. |
Projektleitung
Anmeldungsdatum: Beiträge: 13174 |
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. |
![]() Anmeldungsdatum: 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. |
Anmeldungsdatum: Beiträge: 180 |
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! |
Projektleitung
Anmeldungsdatum: Beiträge: 13174 |
|
Anmeldungsdatum: Beiträge: 180 |
Wobei man ja mit dem gleichen Compiler und den gleichen Compileroptionen und Bibliotheken unter Windows auch nur neu kompilieren muss.
😀 😀 😀 |
![]() Anmeldungsdatum: 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. |
Anmeldungsdatum: Beiträge: 180 |