25 Gründe, warum JAVA auch 2024 noch beliebt ist
(medium.com)„Es gibt zwei Arten von Programmiersprachen: solche, über die sich die Leute beschweren, und solche, die niemand benutzt.“ — Bjarne Stroustrup.
„Die Leute, die Java kritisieren und sich darüber beschweren, sind meist jung und scheinen stärker als mit irgendetwas anderem mit JavaScript in Berührung gekommen zu sein. Im Vergleich zu JS kann Java etwas schwerfälliger und eingeschränkter wirken. Überall gibt es Boilerplate, dazu ein Typsystem, das vom Compiler streng durchgesetzt wird. Aber wenn ich die Wahl hätte, würde ich mich eher für eine nicht optimale Java-Codebasis als für JS entscheiden. Ohne jeden Zweifel.“
„Erst wenn man echte Erfahrung mit Code gesammelt hat, der über Dutzende oder Hunderte von Dateien verteilt ist, beginnt man zu verstehen, dass die sogenannten ‚Einschränkungen‘ von Java in Wirklichkeit Schutzmechanismen sind, die verhindern, dass man sich selbst ins Knie schießt.“
„Java zu entdecken und wieder dorthin zurückzuwechseln, war wie eine Offenbarung. Mir wurde klar, dass ich Java und sein Ökosystem liebe. Deshalb habe ich beschlossen, einige meiner Lieblingsaspekte des Java-Ökosystems aufzuschreiben. Wenn also jemand Java schlechtmacht, hast du hier 25 Gründe, warum er falschliegt.“
- Ein ausgereiftes Ökosystem
- WRITE ONCE, RUN EVERYWHERE
- Abwärtskompatibilität (Backward compatibility)
- Stark typisierte Sprache
- Schneller Release-Zyklus, kontinuierliche Verbesserungen
- Gute IDEs
- Unterstützung für Native Image in GraalVM
- Open-Source-Bibliotheken und -Frameworks
- Multithreading
- Ausgereifte Objektorientierung
- Speicherverwaltung und Garbage Collection
- Observability und Monitoring
- Unterstützung für funktionale Programmierung
- Umfangreiche Dokumentation
- Build-Tools und Abhängigkeitsverwaltung
- Leistungsfähige Testfunktionen
- Eine riesige Community
- Annotationen
- Sicherheitsfunktionen
- Ein umfangreicher API-Satz
- Performance
- Strukturierte Nebenläufigkeit
- Virtuelle Threads
- Pattern Matching für
switch-Anweisungen - String-Templates
62 Kommentare
Alles, was dort als Vorteil von Java aufgeführt wird, sind in Wahrheit eher Punkte, in denen andere Sprachen Java deutlich überlegen zu sein scheinen.
Niemand erwähnt Spring.
Ich habe nichts gegen Java als Sprache selbst,
aber die Realität hierzulande, dass man Spring lernen muss, wirkte auf mich etwas frustrierend, weshalb es auf mich nicht besonders attraktiv wirkte.
Java ist gut, aber Spring ist ... schrecklich T_T
Alle 25 sind nicht wirklich trennscharf. Unabhängig von allem Respekt: Hyänen auf einem Festbankett aus Legacy-Systemen.
Es werden zwar gleich 25 Gründe dafür genannt, warum Java auch 2024 noch beliebt ist,
aber es scheint genug alternative Sprachen zu geben, sodass es nicht unbedingt Java sein muss...
Eigentlich ist die JVM beliebt.
Die meisten Gründe sind im Vergleich zu den Ökosystemen anderer moderner Sprachen
keine besonders großen Stärken, und es wirkt, als habe der Autor Spring und Java nicht getrennt betrachtet, als er den Text geschrieben hat.
Dass Java als Sprache bevorzugt wird, ist nur natürlich, weil die Entwicklungsumgebung dafür sehr gut ausgebaut ist.
Genauso kann man oft nur dann Leistung bringen, wenn man ausschließlich in diesem Umfeld arbeitet; deshalb möchte man auch nur dort arbeiten, und wenn ein anderes Umfeld verlangt wird, stößt das leicht auf Ablehnung.
Allerdings scheint es in Zukunft so zu sein, dass AI bei solchen Sprachen das Coding noch besser übernehmen wird und deshalb die Anpassungsfähigkeit, auch in unterschiedlichen Umgebungen statt nur in der eigenen Komfortzone zu bestehen, wichtiger denn je wird.
Insofern ist Anpassungsfähigkeit an verschiedene Sprachen heute offenbar keine Option mehr, sondern eine Notwendigkeit.
Wenn ich eine Entries-Web-App bauen müsste, würde ich wohl auf jeden Fall Java verwenden. Allein Punkt 1 reicht dafür schon aus ... Für einfache Entwicklung und schnelle Entwicklung scheint mir Python gut zu sein. JS ist ... mir ist das zu unübersichtlich und das nervt mich.
Wenn ich Java machen würde, dann eher Kotlin; und ich beurteile, dass eher die .NET-Sprachen als die Sprache Java selbst mit der Entwicklung von Kotlin Schritt halten.
Java sollte wohl besser als Sprache für die Wartung von Behördenservern bleiben, die früher einmal mit Java aufgebaut wurden; in Korea neigen CEOs dazu, auf Java zu bestehen, weil sie mit dem Wort Java aus der Werbung vertraut sind. Probiert Kotlin und .NET aus und zieht dann Java in Betracht.
Weil hier gerade über Java gesprochen wird, möchte ich dazu auch etwas sagen … Wie seht ihr Go? Ich persönlich mag Kotlin eigentlich lieber als Java, aber ich habe mit Gradle so viele frustrierende Erfahrungen gemacht, dass ich mich am Ende einfach bei Go eingependelt habe. Nach meiner zwar nur kurzen, aber doch praktischen Erfahrung kam mir der Gedanke: Könnte nicht überall dort, wo Java gebraucht wird, auch Go ausreichen?
JS/TS mag ich ebenfalls, aber ich finde, es ist etwas gewagt, Java und JS/TS direkt auf dieselbe Ebene zu stellen und zu vergleichen. Letztlich gibt es nun einmal die Einschränkung des Single-Thread-Modells, und auch wenn man mit
pm2und Ähnlichem Multiprocessing betreibt, ist Java mit seinen virtual threads ebenfalls sehr gut aufgestellt, und ehrlich gesagt halte ich das sogar für die bessere Lösung. Wobei mich dieser Gedankengang am Ende zu Goroutines geführt hat, und so bin ich dann doch bei Go gelandet … hahaha;;Ich denke, es ist am besten, je nach Bedarf die passende Sprache am richtigen Ort einzusetzen. Ich liebe auch jetzt, im Jahr 2024, immer noch PHP, und auch JS sowie Java (Kotlin) schätze ich sehr, wenn auch nicht ganz so sehr wie Go. Sprachen sind Werkzeuge, und solange man sie passend zu ihrem Zweck einsetzt, ist das doch entscheidend – deshalb wollte ich diesen Kommentar hier hinterlassen.
Ich finde, inzwischen ist es auf einem wirklich brauchbaren Niveau angekommen. Ich arbeite in der Firma auch ausschließlich mit Go.
Früher, als wir noch
godepundglidebenutzt haben, hat es, wenn die Dependencies einmal durcheinandergeraten sind, den ganzen Tag gedauert, das wieder passend hinzubiegen, und ich habe mich gefragt, ob das überhaupt eine Sprache ist oder nur irgendetwas in der Nähe einer Sprache.. 😂Selbst wenn es Einschränkungen durch Single-Threading gibt, denke ich im Zeitalter der Orchestrierung, in dem man Container kapselt und dafür sorgt, dass pro Pod nicht zu viel CPU pro CPU-Kern verbraucht wird, nicht, dass diese Einschränkung so groß ist.
Früher wäre es vielleicht etwas anderes gewesen, wenn man mehrere Container auf einem Server laufen ließ und einer dieser Container viel CPU verbraucht hätte.
Bei den meisten Webservern wird jedoch nicht viel CPU verbraucht, sondern eher ein hoher I/O-Durchsatz benötigt, daher denke ich, dass Node ebenfalls als eine Option in Betracht gezogen werden kann.
Wenn es natürlich um eine Domain mit hohem CPU-Bedarf geht, sollte man andere Sprachen in Erwägung ziehen oder über
napinativen Code aufrufen.Ich denke, dass sie wegen der Eigenschaft, asynchrone Aufgaben mit Goroutinen gut zu abstrahieren, eine nützliche Sprache für asynchrone Arbeit ist. Asynchroner Code in Rust oder Python wirkt auf mich so, als wäre zu viel nachgedacht worden. Sowohl beim Schreiben als auch beim Lesen scheint die kognitive Belastung eher hoch zu sein.
Ich habe nur Go verwendet, bevor Generics enthalten waren, aber ich halte es für eine großartige Sprache. Anfangs waren die Tools wirklich nicht besonders gut, aber sie haben sich stark weiterentwickelt.
Die Syntax ist etwas grob, aber gerade dadurch lässt sie sich leicht erlernen.
Bitte nicht streiten....
Die Diskussion erhitzt sich.
Falls Sie Einwände haben, schreiben Sie bitte nur deren Inhalt.
Kommentare, die gegen die Nutzungsregeln der Website verstoßen, wurden gelöscht.
Bitte beachten Sie außerdem, dass Accounts gesperrt wurden, bei denen regelwidrige Aktivitäten wiederholt auftraten.
Wir bitten um eine sachliche Diskussion.
Java 1.8 ist wirklich eine großartige Version!
Ich finde,
write once run everywhereist mittlerweile ein Slogan, den man auch mal ruhen lassen könnte … hahaAber es ist eben Java! hahaha
Das Programmieren von Java in IDEA macht Spaß, aber ohne IDEA wäre ich unglücklich gewesen. (Und das war ich auch.)
Hierzulande gibt es Vorteile bei der Einstellung und zudem das E-Government-Framework, sodass man fast schon von einer Java-Republik sprechen könnte; deshalb gibt es viele Java-Entwickler.
In Unternehmen wird auch häufig von anderen Sprachen auf Java umgestellt, und meiner Erfahrung nach wollten manche? Java-Entwickler wirklich nur Java machen.
Sie sagten, bestehende Systeme in anderen Sprachen seien problematisch und müssten auf Java umgestellt werden. Aber Kotlin wollten sie dann auch wieder nicht machen.
Es wirkte, als gäbe es eine gewisse Abwehr dagegen, etwas Neues zu lernen. So nach dem Motto: Wenn man sowieso alles mit Java machen kann, warum dann überhaupt?
Leute in der SI-Welt verwenden doch keine Generics, oder?
Ich glaube, genau das ist das Problem ... hahaha
Inzwischen wirkt Java fast wie eine Religion.
Wenn man die Aussage
Menschen, die Java kritisieren und sich darüber beschweren, sind meist jung und scheinen mehr als allem anderen JavaScript ausgesetzt zu sein.umkehrt, bedeutet das auch, dass viele, die
jsausprobiert haben, aus Erfahrung sagen, dass Java nicht besonders gut ist.Warum wird nicht einfach anerkannt, dass beides jeweils Vor- und Nachteile hat, statt nur zu behaupten, Java sei besser ...
Das ist ein bisschen so wie bei Leuten, die noch nie eine Document DB benutzt haben und einfach unabhängig von den Eigenschaften sagen, SQL sei besser.
Dabei wird offenbar ausgeblendet, dass es bereits eine Situation gab, in der Java stark verbreitet war, und dass viele erfahrene Entwickler nur Java können und nicht wechseln wollen, weshalb ein Umstieg ausbleibt. Aus heutiger Sicht hat Java meiner Meinung nach kaum noch eigene Stärken.
Meiner langjährigen Erfahrung nach haben Python und JS, glaube ich, einen höheren Anteil an regelrechten Fanatikern.
Ich denke, das liegt wahrscheinlich daran, dass sie eher in der Position sind, statt der Sprache Java eher JS/Python zu bewerben, sodass es Ihnen so vorkommen kann, als würden sie ihre Argumente stärker vertreten.
Persönlich habe ich durchaus einige Leute gesehen, die sich außer Java überhaupt keine andere Sprache vorstellen konnten. Diejenigen, die auch andere Sprachen genutzt haben, waren dagegen meist bereit, je nach Situation eine andere Sprache einzusetzen.
Ich kann mir schon vorstellen, dass das so sein könnte, wenn die erste Sprache Java war, aber ich habe in meinem Umfeld noch nie so einen Fall gesehen, deshalb kann ich mir das nur schwer ausmalen.
Bei mir war es auch so, dass ich nach dem Studienbeginn in den Lehrveranstaltungen zuerst C++ gelernt habe und mit steigender Semesterzahl ganz natürlich mit anderen Sprachen in Berührung kam, daher empfinde ich das Lernen neuer Sprachen nicht als besonders belastend ... Tatsächlich sind die grundlegenden Syntaxelemente wie Variablendeklarationen, Kontrollstrukturen und Funktionen ja bei allen ziemlich ähnlich.
In solchen Fällen liegt es vielleicht daran, dass man eine Sprache am Anfang zu eng gefasst gelernt hat und dadurch das Spektrum schmal geworden ist. Und so etwas habe ich eher häufiger bei Leuten gesehen, die Python als erste Sprache für Deep Learning oder mathematische Statistik kennengelernt haben. Das sind natürlich sowohl meine eigenen Erfahrungen als auch Berichte von anderen, also werden wohl beide Sichtweisen ihre Berechtigung haben.
Ich habe eine ähnliche Erfahrung gemacht und denke genauso.
Leute, die Python mögen, behaupten nicht, dass Python eine gute Sprache sei. Bei JS gibt es auch niemanden, der darauf beharrt, dass die Sprache gut ist. Bei Python oder JS ist es einfach so, dass das Ökosystem für die Entwicklung in bestimmten Bereichen gut ist. Nur bei Java-Leuten hat man irgendwie das Gefühl, dass sie immer darauf bestehen, dass es bedingungslos gut sei..
Sogar JS-Entwickler selbst machen sich darüber lustig. Ist das überhaupt eine Sprache … Ohne
tswäre es echt schlimm gewesen T_TWenn man Java unbedingt verteidigen will, könnte man umgekehrt sagen, dass gerade Java aus den verschiedensten Gründen besonders oft zur Zielscheibe von Spott wird. So eine Art vertrauter Onkel von nebenan für alle ...?
Wenn man heutzutage bei Google nach Inhalten zu Java sucht,
überschwemmen einen koreanische Blogbeiträge mit immer demselben Inhalt aus der Akademie,
und es nervt, dass man kaum noch vernünftige Referenzen findet.
Die Google-Suche ist deutlich schlechter geworden ...
18, 25, 20, 10, 8, 6, 5, 3, 2, 1 usw. sind kein Alleinstellungsmerkmal von Java. Falscher Vergleich
Wenn man es sich jetzt ansieht, merkt man, dass Java solche Funktionen ebenfalls hat und es keinen Grund gibt, es zu kritisieren. Ich glaube nicht, dass damit gemeint ist, man solle Java nutzen, weil es nur dort möglich ist.
Beim Lesen denke ich eher nur: Hm … ist .NET nicht die bessere Wahl?
Ich mag C# zwar auch, aber in einer Nicht-Windows-Umgebung frage ich mich, ob man es überhaupt unbedingt verwenden muss.
Das ist derselbe Inhalt wie im obigen Kommentar. Diese Zeit ist wirklich schon sehr lange vorbei.
Die späte Entscheidung von MS hat die Wahrnehmung der Menschen derart ruiniert.
Wenn man nur Windows-Anwendungen entwickelt, ist das MS-Ökosystem mit vielen Vorteilen attraktiv, aber unter Linux oder macOS gibt es meiner Meinung nach nichts, was besser wäre als Java. MS unterstützt das zwar inzwischen verspätet, aber es gibt keinen Grund, es unbedingt zu verwenden. Der Zeitpunkt ist ungünstig.
Das ist längst nicht mehr das .NET aus der Zeit des .NET Frameworks, warum also auf Windows-Anwendungen beschränken?
Auf den Mobiltelefonen, die ihr bereits in der Hand haltet, läuft doch schon eine auf .NET basierende Game-Engine;
222
333
Ich kritisiere Java nicht, aber der Grund, warum Java nervt, ist, dass ausgerechnet Java-Entwickler andere Sprach-Communities besonders oft herabsetzen, ständig vergleichen und einen seltsamen Java-Stolz zeigen. Ich mag Java, aber ich verstehe nicht, warum sie so sind. Jede Sprache hat ihre eigene Philosophie, ihre Vor- und Nachteile und ein anderes Ökosystem. Trotzdem zeigen manche plötzlich diesen merkwürdigen Java-Stolz und wirken dadurch unsympathisch.
Es scheint, als brauche man belastbares Material, das den Stolz von Java-Entwicklern auf Java begründet. Wenn sich das nur schwer belegen lässt, halte ich das für eine Behauptung, die man nur schwer akzeptieren kann.
Ich glaube, solche Leute gibt es bei jeder Sprache und jedem Tool. Java war zum Zeitpunkt seiner Veröffentlichung eine im Vergleich zu C/C++ ziemlich hippe Sprache und wurde gleichzeitig breit im Unternehmenseinsatz genutzt; weil der Pool an Entwicklerinnen und Entwicklern groß ist, fällt das wohl noch stärker auf.
Und heutzutage scheinen Rust-Entwickler diese Rolle zu übernehmen.
Erstaunlicherweise liegt der Grund, warum Java zum Mainstream wurde, daran, dass unglaublich viel Geld für Marketing ausgegeben wurde, hahaha
https://www.youtube.com/watch?v=NVuTBL09Dn4
Es gibt ein YouTube-Video darüber, wie eine Programmiersprache zum Mainstream wird – vielleicht finden es auch andere interessant!
https://www.youtube.com/watch?v=QyJZzq0v7Z4
Man sollte sich über Java-Entwickler ärgern, lässt es aber an Java aus...
Das liegt an deinem Leseverständnis …
Ich muss gar nicht antworten, jemand anderes hat es schon geschrieben.
Nein, stimmt nicht?
Scheint nicht einmal zu wissen, was Lesekompetenz ist?
Wenn Ihnen spontan Eclipse, das in Java entwickelt wurde, und VSCode, das in JavaScript (TypeScript) entwickelt wurde, eingefallen sind … ist das dann ein falscher Vergleich? Natürlich bietet Eclipse mehr Funktionen.
Das ist ein falscher Vergleich..
Man muss sich ansehen, wann sie erschienen sind.
Als Eclipse herauskam, hatte es eine Zeit lang eine ähnliche Stellung wie heute VS Code.
Ich selbst finde Eclipse auch wirklich umständlich zu benutzen und nutze es deshalb nicht,
a ber damals gab es außer Eclipse keine brauchbare Alternative.
Die Stärke von JavaScript ist, dass Google die V8-Engine verwaltet.
Java ist aufgegeben worden..
Das Backend einer Electron-App ist doch JavaScript, oder? Der Main-Prozess und der Renderer-Prozess laufen zwar getrennt, aber beide werden doch mit JavaScript-Code ausgeführt.
Genauso ist die JVM am Ende doch auch nur eine nativ implementierte Runtime, oder?