15 Punkte von regentag 2024-11-06 | 62 Kommentare | Auf WhatsApp teilen

„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.“

  1. Ein ausgereiftes Ökosystem
  2. WRITE ONCE, RUN EVERYWHERE
  3. Abwärtskompatibilität (Backward compatibility)
  4. Stark typisierte Sprache
  5. Schneller Release-Zyklus, kontinuierliche Verbesserungen
  6. Gute IDEs
  7. Unterstützung für Native Image in GraalVM
  8. Open-Source-Bibliotheken und -Frameworks
  9. Multithreading
  10. Ausgereifte Objektorientierung
  11. Speicherverwaltung und Garbage Collection
  12. Observability und Monitoring
  13. Unterstützung für funktionale Programmierung
  14. Umfangreiche Dokumentation
  15. Build-Tools und Abhängigkeitsverwaltung
  16. Leistungsfähige Testfunktionen
  17. Eine riesige Community
  18. Annotationen
  19. Sicherheitsfunktionen
  20. Ein umfangreicher API-Satz
  21. Performance
  22. Strukturierte Nebenläufigkeit
  23. Virtuelle Threads
  24. Pattern Matching für switch-Anweisungen
  25. String-Templates

62 Kommentare

 
suckjava 2025-09-24

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.

 
sungwoo 2024-11-14

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.

 
regentag 2024-11-14

Java ist gut, aber Spring ist ... schrecklich T_T

 
nullvana 2024-11-08

Alle 25 sind nicht wirklich trennscharf. Unabhängig von allem Respekt: Hyänen auf einem Festbankett aus Legacy-Systemen.

 
fau1ty 2024-11-07

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...

 
lazyhack 2024-11-07

Eigentlich ist die JVM beliebt.

 
sunrabbit 2024-11-07

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.

 
progdesigner 2024-11-07

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.

 
love7peace 2024-11-06

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.

 
newmanjoo 2024-11-06

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.

 
tsboard 2024-11-06

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 pm2 und Ä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.

 
shortstories 2024-11-07

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 godep und glide benutzt 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.. 😂

 
sunrabbit 2024-11-07

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 napi nativen Code aufrufen.

 
savvykang 2024-11-06

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.

 
regentag 2024-11-06

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.

 
seunghaekim 2024-11-06

Bitte nicht streiten....

 
moderator 2024-11-06

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.

 
[Dieser Kommentar wurde ausgeblendet.]
 
regentag 2024-11-06

Java 1.8 ist wirklich eine großartige Version!

 
roxie 2024-11-06

Ich finde, write once run everywhere ist mittlerweile ein Slogan, den man auch mal ruhen lassen könnte … haha

 
regentag 2024-11-06

Aber es ist eben Java! hahaha

 
secret3056 2024-11-06

Das Programmieren von Java in IDEA macht Spaß, aber ohne IDEA wäre ich unglücklich gewesen. (Und das war ich auch.)

 
tested 2024-11-06

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?

 
[Dieser Kommentar wurde ausgeblendet.]
 
dyumadel 2024-11-06

Leute in der SI-Welt verwenden doch keine Generics, oder?

 
mse9000 2024-11-08

Ich glaube, genau das ist das Problem ... hahaha

 
everyharu 2024-11-06

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 js ausprobiert 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.

 
cosine20 2024-11-06

Meiner langjährigen Erfahrung nach haben Python und JS, glaube ich, einen höheren Anteil an regelrechten Fanatikern.

 
kbumsik 2024-11-06

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.

 
cosine20 2024-11-06

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.

 
moderato 2024-11-06

Ich habe eine ähnliche Erfahrung gemacht und denke genauso.

 
hobbycoder 2024-11-06

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..

 
aer0700 2024-11-07

Sogar JS-Entwickler selbst machen sich darüber lustig. Ist das überhaupt eine Sprache … Ohne ts wäre es echt schlimm gewesen T_T

 
roxie 2024-11-06

Wenn 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 ...?

 
kandk 2024-11-06

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.

 
regentag 2024-11-06

Die Google-Suche ist deutlich schlechter geworden ...

 
jjpark78 2024-11-06

18, 25, 20, 10, 8, 6, 5, 3, 2, 1 usw. sind kein Alleinstellungsmerkmal von Java. Falscher Vergleich

 
regentag 2024-11-06

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.

 
lazydonkey456 2024-11-06

Beim Lesen denke ich eher nur: Hm … ist .NET nicht die bessere Wahl?

 
regentag 2024-11-06

Ich mag C# zwar auch, aber in einer Nicht-Windows-Umgebung frage ich mich, ob man es überhaupt unbedingt verwenden muss.

 
lazydonkey456 2024-11-07

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.

 
rabbitcarrot 2024-11-06

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.

 
lazydonkey456 2024-11-07

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;

 
leetleet 2024-11-06

222

 
bichi 2024-11-06

333

 
gigisusu8888 2024-11-06

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.

 
fooandbar 2024-11-06

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.

 
regentag 2024-11-06

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.

 
puersum 2024-11-06

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

 
puersum 2024-11-06

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

 
limc132 2024-11-06

Man sollte sich über Java-Entwickler ärgern, lässt es aber an Java aus...

 
gigisusu8888 2024-11-06

Das liegt an deinem Leseverständnis …

 
limc132 2024-11-06

Ich muss gar nicht antworten, jemand anderes hat es schon geschrieben.

 
gigisusu8888 2024-11-06

Nein, stimmt nicht?

 
secret3056 2024-11-06

Der Grund, warum Java nervt, ist

 
gigisusu8888 2024-11-06

Scheint nicht einmal zu wissen, was Lesekompetenz ist?

 
kayws426 2024-11-06

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.

 
koxel 2024-11-06

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.

 
[Dieser Kommentar wurde ausgeblendet.]
 
[Dieser Kommentar wurde ausgeblendet.]
 
kandk 2024-11-06

Die Stärke von JavaScript ist, dass Google die V8-Engine verwaltet.
Java ist aufgegeben worden..

 
lazydonkey456 2024-11-06

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?