Die folgende Diskussion gilt nur für PC und Mobilgeräte.
Ist der größte Vorteil von Java wirklich, dass es plattformübergreifend ist? Früher war es das, aber nicht mehr.
Es ist nur die Clientanwendung, die plattformübergreifende Anforderungen hat, nicht der Server. Bei Desktop-Anwendungen können Ihre Kunden beispielsweise Windows- oder Linux-Benutzer sein. Wenn Sie nicht mehr in die Anpassung an jede Plattform investieren möchten, ist das sogenannte „Einmal schreiben, überall ausführen“ von Java äußerst brillant. Heutzutage tendiert die gesamte Softwarewelt jedoch zu B/S-Anwendungen (außer eingebettet). Auch wenn der Client plattformübergreifend sein soll, sind Drittanbieter-Frameworks wie QT grundsätzlich eliminiert im Bereich der Desktop-Anwendungen ist es eine unbestreitbare Tatsache, und das Applet, auf das Java so stolz war, ist längst verschwunden. Wenn es in clientseitigem Java eine Exzellenz gibt, dann ist es nur Android. Android verließ sich ursprünglich auf die JVM, um die Unterschiede zwischen verschiedenen Hardwaregeräten abzuschirmen, und erzielte damit großen Erfolg. Doch heute steht das Aufkommen des ART-Modus in Android L kurz davor, diese Situation umzukehren, und Google möchte möglicherweise auch seine eigene Go-Sprache verwenden Java als erste Sprache der Android-Plattform. Auf der Clientseite ist Java also fast vollständig besiegt.
Serverseitige Anwendungen müssen nicht plattformübergreifend sein. Ich glaube nicht, dass ein Unternehmen heute Linux verwenden und nächsten Monat auf Windows umsteigen würde, wenn es um den Aufbau eines Webservers geht, oder? Wenn Sie nur die Linux-Distribution ändern, beispielsweise von Debian auf Fedora, bleibt im Wesentlichen der Linux-Kernel unverändert, sodass es kein Problem mit rein kompilierten Sprachen wie C++ gibt. Wenn Sie einen Spieleserver bauen, wird sich meiner Meinung nach fast jeder für Linux statt für die Win-Plattform entscheiden. Die praktische Anwendbarkeit des plattformübergreifenden Vorteils von Java ist tatsächlich stark geschwächt. Man kann sagen, dass es in tatsächlichen Anwendungen kaum zu erkennen ist, dass Java plattformübergreifend sein kann. Als eine der drei wichtigsten kommerziellen JVMs ist JRockets eine reine Compiler-JVM, das heißt, alle Bytecodes werden beim Start der Anwendung in lokalen Maschinencode kompiliert. Dadurch wird die plattformübergreifende Funktion weitgehend aufgegeben und die Leistung verbessert.
Der größte Vorteil von Java ist heute sein großes und vollständiges Ökosystem. Ob eine Programmiersprache populär werden kann, hängt hauptsächlich von ihrem Ökosystem ab. Die Perfektion des Java-Ökosystems spiegelt sich vor allem in folgenden Aspekten wider:
Java hat die größte Anzahl an Programmierern auf der Welt. Es spielt keine Rolle, ob Sie sagen, dass es sich um Landwirte handelt, aber abhängig von der Anzahl ist der offensichtlichste Effekt, dass es einfacher ist, Java-Programmierer zu rekrutieren, wenn das Unternehmen Mitarbeiter rekrutiert. Stellen Sie sich vor, Sie möchten eine Reihe von Software erstellen und haben eine großartige technische Lösung, die in Sprachen wie C++, Scala oder Ruby implementiert werden muss, aber Sie können nicht genügend Leute rekrutieren, dann wird der Plan am besten funktionieren gehen wahrscheinlich verloren. Zu diesem Zeitpunkt kann Ihre Java-Anwendung dies auch, und Sie können problemlos genügend Leute rekrutieren, sodass Sie sich eher für Java entscheiden.
Java verfügt über eine große Anzahl von Bibliotheken von Drittanbietern. Wenn Sie HTML analysieren möchten, müssen Sie wahrscheinlich Ihre eigene Analysealgorithmusbibliothek in Sprachen wie C/C++ schreiben. Wenn es sich jedoch um Java handelt, können Sie JSoup problemlos auf Github finden, die Abhängigkeiten mit Maven importieren und abrufen HTML in wenigen Minuten erstellt. Aus diesem Grund gibt es auch ein Sprichwort, das Java persifliert: „Wir produzieren keinen Code, wir sind nur Github-Portierer.“ Dieser Satz macht im wahrsten Sinne des Wortes Sinn, ignoriert aber die von großem Wert verbesserte Effizienz der Softwareproduktion. Bei der Softwareentwicklung fallen für das Unternehmen eigentlich nur die „Kopfpauschale“ an. Jede Verkürzung der Entwicklungszeit um einen Monat kann dem Unternehmen helfen, Hunderttausende und Dutzende Millionen an Forschungs- und Entwicklungskosten einzusparen.
Java verfügt über eine leistungsstarke IDE. Eclipse kann durch Plug-Ins nahezu jeden Entwicklungsbedarf erfüllen. Obwohl es etwas langsam ist, können Sie die Glätte des Programms durch JVM-Optimierung verbessern. Verwenden Sie niemals die Standard-JVM-Parameter. Allerdings hat IntelliJ Idea Eclipse vollständig übertroffen, und die Intelligenz von Idea ist fast mit VS unter der Win-Plattform vergleichbar. Ich gehöre zu den Menschen, die ohne Vim nicht leben können, und in beiden IDEs gibt es Vim-Plug-Ins, die mich glücklich am Leben halten.
Java hat viele Killeranwendungen. Selbstverständlich Spring, Struts, Hibernate, Hadoop, Tomcat, JBoss usw.
Java verfügt über sehr wenige Syntaxfunktionen. Ja, das ist auch ein Plus. C++ bietet im Vergleich zu C viele Funktionen. Es ist nicht nur schwer zu erlernen, sondern verringert auch die Lesbarkeit des Codes, wenn es verwendet wird. Tatsächlich ist es Zeit- und Arbeitsverschwendung. In der heutigen Welt sind die Anforderungen an Programmiersprachen eine einfache Syntax und lesbarer Code, und Leistung ist das nächstbeste. Daher wurden Programmiersprachen wie Python und Ruby geboren. Viele Leute kritisieren, dass die Java-Syntax beim Schreiben aufgebläht ist, und ich gebe das zu, aber Tatsache ist, dass Programmiersprachen aufgrund der aufgeblähten Syntax nie eliminiert wurden. Was ihr Leben und ihren Tod bestimmt, ist das Ökosystem. Für Kritiker hier ein Zitat von Zhihu: „Dynamische Typen sind eine Zeit lang großartig, aber Code-Refactoring ist ein Krematorium“
Die Leistung von Java ist bereits hoch genug. Der integrierte JIT-Compiler der HotSpot-JVM hat große Anstrengungen unternommen, um den Bytecode zur Laufzeit zu optimieren, um die JVM ausreichend „aufzuwärmen“ und angemessene Startparameter bereitzustellen. Wenn es sich nicht um eine Systemanwendung handelt, die sehr leistungsempfindlich ist, ist Java schnell genug. Es gibt eine einfache und praktikable Möglichkeit, dies zu visualisieren. Fügen Sie +XX:PrintCompilation zu den JVM-Startparametern hinzu, um zu sehen, wie beschäftigt der JIT-Compiler ist. In der heutigen Welt steigt die Nachfrage nach Software. Wenn die Leistung akzeptabel ist, steht die Entwicklungseffizienz an erster Stelle. Dies ist auch der Hauptgrund, warum dynamische Skriptsprachen wie Python beliebt sind 🎜>