Wie jeder Java-Entwickler weiß, hat Oracle Sun gekauft und die Zukunft von Java sieht ziemlich unklar aus, zumal Oracle die JVM monetarisieren möchte . Java als Sprache war in den letzten Jahren ebenfalls veraltet. Die Nichteinbeziehung von Verschlüssen ist ein Beispiel (das möglicherweise in Java 1.8 enthalten ist). Gleichzeitig werden einige neue Technologien wie Ruby, Scala und Groovy verwendet komplexe Websites zu liefern.
Ich frage mich, ob es Unternehmen oder Organisationen gibt, die reden, Spitzen machen oder anfangen, eine andere Technologie zu verwenden, mit der Idee, Java nicht mehr für Projekte auf der grünen Wiese zu verwenden, so wie Unternehmen vor 15 Jahren von C ++, Perl, migriert sind und andere Technologien zu Java. Ich bin auch daran interessiert zu wissen, was die Eindrücke davon sind, zum Beispiel: Ich plane, in 2 Jahren auf eine andere Technologie zu migrieren.
Um klar zu sein, ich frage nicht, welche Technologie besser ist. Ich frage, ob Ihre Organisation daran denkt, Java für eine andere Technologie zu verlassen.
Antworten:
Überhaupt nicht - tatsächlich investiere ich stark in Java als Plattform in meinem Unternehmen (ein Startup, das SaaS-Anwendungen und -Tools für Data Mining entwickelt).
Hier sind die Gründe:
Wenn Sie Java als Plattform auswählen, müssen Sie Java nicht als Sprache verwenden. Wir verwenden Clojure als primäre Anwendungsentwicklungssprache und verwenden bei Bedarf gelegentlich Java. Aber auch andere JVM-Sprachen wie Scala und Groovy sind großartig.
Ich persönlich mache mir keine Sorgen um Oracle . Die Hauptimplementierung von Java wird mit ziemlicher Sicherheit weiterhin Open Source ( OpenJDK ) und frei verfügbar sein. Wenn Oracle etwas Dummes getan hat, haben andere große Unternehmen (ich denke insbesondere IBM und Google) zu viel in Java investiert, um damit durchzukommen, und sie könnten Java ohne die Hilfe von Oracle problemlos weiterentwickeln.
Die JVM ist eine großartige Ausführungsumgebung . Plattformübergreifend, sehr hohe Leistung, extrem gute Optimierung der JIT-Technologie. Es ist nahe genug an der nativen Geschwindigkeit, dass es mir egal ist, wie wenig es langsamer als C / C ++ ist, und dieser Overhead wird durch eine ordnungsgemäße Speicherbereinigung und eine verwaltete Bytecode-Ausführungsumgebung usw. mehr als ausgeglichen.
Java hat ein großartiges Ökosystem von Open Source-Bibliotheken . Tatsächlich würde ich sagen, dass es das beste Ökosystem aller Sprachen ist. Dies bedeutet, dass der größte Teil des "schweren Hebens" in Bezug auf die Infrastruktur bereits in extrem hoher Qualität durchgeführt wurde. Und die Tatsache, dass die meisten Dinge, die Sie benötigen, Open Source sind, bedeutet, dass Sie nicht die Kosten (sowohl in Bezug auf Geld als auch in Bezug auf die Verwaltungszeit) haben, um Lizenzen zu erhalten.
Eclipse ist eine großartige IDE und bietet eine fantastische Toolchain für die Entwicklung robuster Unternehmensanwendungen. Wir verwenden die Integration von Maven, JUnit, Git / SVN und eine Vielzahl anderer Tools, die als Eclipse-Plugins verfügbar sind. Es "funktioniert einfach".
Was sind die anderen Optionen?
.NET ist die einzige Plattform mit vergleichbaren Funktionen, und ich persönlich mag C #, aber es bindet Sie in Microsoft-Technologien ein (schlechter als Oracle / IBM IMHO) und verfügt nicht über die gleiche Breite des Open-Source-Ökosystems. Gut für Microsoft-Shops, aber nicht, wenn Sie Ihr eigenes technologisches Schicksal kontrollieren möchten. Und ja, Mono ist niedlich, aber ich kann es mir nicht leisten, mein Geschäft auf eine Plattform zu setzen, die möglicherweise in der Lage ist, ein funktionierendes Maß an Kompatibilität mit dem .NET-Mainstream aufrechtzuerhalten.
Dann gibt es all die anderen großartigen Sprachen, die sehr gut darin sind, was sie tun (z. B. Ruby, Python, PHP, Javascript), aber kein überzeugendes, umfassendes Äquivalent zur Java-Plattform bieten. Das Risiko besteht darin, dass Sie anfangen müssen, viele Dinge in einer etwas weniger als schönen Architektur zusammenzukleben. Kein Problem beim Erstellen von Websites, schnellen und schmutzigen Apps, aber weniger attraktiv für die langfristige Produktentwicklung.
C / C ++ eignet sich hervorragend für die Systemprogrammierung und Spiele, ist jedoch für die moderne Entwicklung von Webanwendungen einfach zu komplex / kostspielig / unflexibel.
Und dann gibt es die schönen Sprachen, die ich liebe, wie Haskell, die aus akademischer Sicht fantastisch sind, aber einfach nicht die Branchenakzeptanz / das Ökosystem haben, die erforderlich sind, um sie zu einer glaubwürdigen Plattformwahl zu machen. Außerdem kann ich die meisten Vorteile der modernen funktionalen Programmierung nutzen, indem ich Clojure auf der JVM ausführe.
Also ja, es ist eine komplexe Entscheidung. Aber ich habe die Java-Entscheidung vor allen anderen Optionen nach viel Recherche und Überlegung getroffen. Ich würde heute noch die gleiche Entscheidung treffen.
AKTUALISIEREN
Ein paar Worte zur Wahl von Clojure in der JVM als Sprachwahl. Hauptmotive dafür waren:
quelle
Es hängt alles vom Kunden ab.
Java wird immer eine eigene kleine Nische haben, in der sich die Leute aus dem einen oder anderen Grund dafür interessieren, genau aus den gleichen Gründen, aus denen sich die Leute für .php oder .net interessieren, aber letztendlich hängt es von den Anforderungen und Vorlieben des Kunden ab.
Wenn ein Kunde sagt ... Ich möchte, dass diese Anwendung in Java ist ... werden wir nein sagen? wahrscheinlich nicht ... wenn sie sagen, dass es uns egal ist ... werden wir es in Java schreiben? wahrscheinlich nicht, aber das ist nur Spekulation.
Wir haben in Java geschriebene Anwendungen, die eine lange Geschichte haben, aber es scheint, dass der Kunde ALLES akribisch durch die Marke Windows ersetzt ... Orakel für SQL Server ... Unix / Linux mit Server 2008 ... und PHP und Java mit .net.
Wenn das passiert, dann ja ... es sei denn, ein neuer Kunde kommt herein und sagt hey ... wir wollen, dass dies in Java geschrieben wird ... wir werden .net verwenden.
quelle
Zunächst einmal eine Prämisse, ich arbeite nicht bei einem Softwareunternehmen.
Ok, wir verwenden Oracle als Hauptdatenbank, in der alle wichtigen Informationen gespeichert sind. Aus diesem Grund planen wir, Java weiterhin für alles zu verwenden, was mit Oracle zu tun hat. Die Übernahme von Sun durch Oracle ist für uns ein Anreiz, Java weiterhin für alles zu verwenden, was mit Oracle zu tun hat.
Alle Desktopanwendungen sind jedoch in C # geschrieben, da alles auf Windows basiert.
quelle
Um Ihre Frage zu beantworten. Nein.
In Unternehmen jeder bedeutenden Größe entscheiden im Allgemeinen nicht Entwickler darüber, ob das Unternehmen von Java weg und zu etwas anderem wechseln soll. Und für die Typen, die diese Entscheidungen treffen, sind andere Faktoren als die von Ihnen aufgeführten wichtig.
Im Gegenteil, ich denke, dass die Zukunft klar ist. Die Java-Evolution wird langsam, aber stetig fortgesetzt, und die SE- und EE-Kerntechnologien werden weiterhin kostenlos sein. Für mich ist der einzige wirkliche Unsicherheitsbereich, was mit dem Bunfight von Oracle gegen Google passieren wird. Aber auf die eine oder andere Weise erwarte ich, dass Android / Davlik als Alternative zu Java ME erfolgreich sein wird ... aber nur für mobile Plattformen.
Dies mag Entwickler ärgern, aber die "Stalenität" ist tatsächlich eine Folge davon, dass Sun / Oracle darauf achtet, was das Unternehmen will ... eine Sprache / Plattform mit langfristiger Stabilität.
Auch hier ist die Jury aus Managementsicht unschlüssig, ob diese Technologien auf der ganzen Linie besser sind.
Eine Entscheidung auf Unternehmensebene, auf eine neue Sprache umzusteigen, ist mit erheblichen Kosten und Risiken verbunden, insbesondere wenn in der "Legacy" -Sprache eine erhebliche Menge an vorhandenem Code vorhanden ist.
quelle