Die Übernahme von Sun durch Oracle hat dazu geführt, dass sich die Menschen Sorgen um die Zukunft von Java machen, ob Oracle die Offenheit von Java weiterhin aufrechterhalten kann, und zwar angesichts des Aufstiegs einer Reihe leichtgewichtiger Sprachen wie Ruby, Python oder PHP , ob Java seine Popularität in der Entwicklung auf diesem Gebiet weiterhin aufrechterhalten kann?
Als vor 14 Jahren ein Marketing-Genie von Sun den Namen einer experimentellen plattformübergreifenden Sprache von Oak, das Solidität symbolisiert, in Java, das voller Duft ist, änderte, hätte er vielleicht nicht gedacht, dass diese Sprache das Potenzial dazu hätte eine beliebte Sprache. Späterer Ruhm. Wenn Sun nun den Namen dieser Sprache ändern möchte, um seine Position in der Computerindustrie genau widerzuspiegeln, scheint Oak anschaulicher zu sein. Obwohl die Java-Sprache heute nicht wirklich überall blüht, ist sie bei vielen Gelegenheiten und Geräten aufgetaucht und genießt den Ruf eines stabilen Betriebs und eines gut gestalteten Java-Codes Das Werden einer universellen Sprache ist in greifbarer Nähe.
James Gosling, der Vater von Java, brachte dies zum Ausdruck, als er die Bühne betrat, um auf der von Oracle veranstalteten OpenWorld-Konferenz zu sprechen. Er rief eine JavaFX-Diashow mit einer ganzen Reihe von Statistiken auf: mehr als 850 Millionen Java-fähige Desktops und etwa 10 Milliarden Java-fähige Geräte. Tatsächlich sind Java Virtual Machines in elektronischen Geräten weit verbreitet: E-Book-Reader Kindle, Blu-ray-Disk-Player und Smartphones (einschließlich weniger Smartphones) usw. iPhone-Apps laufen auf Tausenden von iPhones, aber Java ist in 2,6 Milliarden Telefonen integriert, von nicht ganz so intelligenten Telefonen, die Sie für 20 US-Dollar kaufen können, bis hin zu BlackBerry- und Android-Telefonen der neuesten Generation. Nichts ist enthalten.
Die Einladung von Gosling zu einem Vortrag auf der OpenWorld-Konferenz ist nur eine der Möglichkeiten, mit denen Oracle-Chef Larry Ellison den Ingenieuren versichern möchte, dass die Sprache eine glänzende Zukunft hat. Oracle will Sun Microsystems übernehmen, muss aber noch auf die Zustimmung der europäischen Regulierungsbehörden warten. Die US-Regierung hat grünes Licht gegeben, aber europäische Regierungsvertreter haben dem Deal aufgrund von Bedenken hinsichtlich der Entwicklung von MySQL noch nicht zugestimmt. Sowohl Gosling als auch Sun-Vorsitzender McNealy sagten, dass Java nach Abschluss der Fusion und Übernahme mehr Aufmerksamkeit und Ressourcen von Oracle erhalten werde als zuvor.
Kurzfristig ist das von Ellison übermittelte Signal möglicherweise nicht sehr wichtig, da es jetzt, da Java zu einem Klima geworden ist, nicht einfach ist, die Entwicklungsrichtung zu ändern. Natürlich glauben einige Leute, dass das Geschäftsmodell von Oracle so unterschiedlich ist, dass es unweigerlich große Änderungen in jedem Teil des Java-Ökosystems mit sich bringen wird. Alles in allem gibt es für jeden Grund, warum Java sich ändern könnte, ebenso gute Gründe, warum Oracle den Status quo beibehalten möchte.
Anwendungen auf Unternehmensebene sind das Hauptschlachtfeld
Java fand zunächst seinen Platz auf der Serverseite, und dieser Bereich ist immer noch der Hauptort, an dem virtuelle Java-Maschinen voraussichtlich auch in Zukunft zu sehen sein werden. Bei allen Oracle-Produkten sind auch große Server der Hauptstandort, daher ist es sinnvoll, dass dieses Paar auftaucht. Obwohl PHP-Programmierer MySQL bevorzugen, verwenden viele der kritischsten Projekte für datenintensive Unternehmensanwendungen immer noch Java, eingebettet in eine Oracle-basierte Architektur, und diese Situation sollte sich so schnell nicht ändern.
Laut Sun wird der GlassFish-Anwendungsserver mehr als eine Million Mal pro Monat heruntergeladen und ältere Plattformen wie Tomcat sind immer noch weit verbreitet. Da die Technologie hoch angesehen, schnell und wirklich plattformübergreifend ist, besteht bei großen Unternehmen (wie Banken und Versicherungen) eine hohe Nachfrage nach Java-Entwicklern.
Allerdings gilt Java nicht mehr als die neueste und coolste Syntax. Einige Programmierer haben sich über die Struktur statisch typisierter Sprachen beschwert und sind auf neuere oder einfachere Sprachen wie Ruby, Python oder PHP umgestiegen. Viele der einfacheren Webanwendungen von heute werden in diesen Sprachen entwickelt, da der Code, den sie schreiben, leicht zu ändern ist und schnell Prototypen erstellt werden können. Diese benutzerfreundlichen neuen Sprachen basieren jedoch häufig auf Java: Ruby-Entwickler verwenden häufig JRuby (eine Java-basierte Ruby-Sprache), da die virtuelle Java-Maschine schwere Aufgaben besser bewältigen und mehrere Threads freigeben kann. Jython (auf Java basierende Python-Sprache) ist ähnlich.
Java integriert jetzt einige der neuesten Programmiertechniken, um das Eindringen dieser neuen Sprachen einzudämmen. Grails ahmt eindeutig viele der einfachen deklarativen Muster von Ruby on Rails nach; das Grails-Framework kombiniert Skript-Plug-Ins wie Groovy mit einer Datenbank-Middleware namens Hibernate. Groovy selbst fügt zahlreiche dynamische Optionen hinzu, um die Codeinterpretation zu erleichtern, und kann direkt mit jedem Teil der Java Application Programming Interface (API) verknüpft werden. Sie müssen nicht einmal an Python oder Ruby denken, denn Groovy bietet Java-Programmierern mit einer raffinierten, modernen Syntax Zugriff auf eine scheinbar endlose Vielfalt riesiger Bibliotheken und eine grundsolide zugrunde liegende virtuelle Maschine.
Gehen Sie mobil
Die Zahl der Java-Telefone (schätzungsweise rund 2,6 Milliarden) ist atemberaubend, da viele der einfachsten Telefone auf dem Markt mit der Java Platform Micro Edition (Java ME) ausgestattet sind. Dies ermöglicht es Unternehmen wie Wattpad.com, Plattformen zum Lesen von Dokumenten zu entwickeln, die in der gesamten Dritten Welt reibungslos funktionieren.
Allerdings ist die Zahl der Smartphones, auf denen Java läuft, relativ gering. Der große Erfolg des iPhone hat viele Menschen dazu inspiriert, Objective C neu zu erlernen. Diese Sprache ermöglicht es Programmierern, ihre Kontrolle über einige Systemprobleme wie die Speichernutzung zu verbessern. Java verbirgt die meisten zugrunde liegenden Probleme vor Programmierern, was ein Vorteil ist. Voraussetzung ist jedoch, dass keine Ressourcen wie Speicher verwaltet werden müssen, da bei einem kleinen Fehler in der Speicherbereinigung einige Spiele nicht ausgeführt werden können. Da die Akkulaufzeit ein so wichtiger Faktor ist, erfordern Smartphones leider ein strengeres Ressourcenmanagement als fast jede andere Plattform.
Dennoch sind Java-Programmierer gefragt, da BlackBerry weiterhin Java ME auf seiner neuen Plattform verwendet: Es fügt den Profilen des Telefons Unterstützung für Touchscreens und Orientierungssensoren hinzu. Bei Android gibt es unvorhersehbare Faktoren. Seitdem Google die Nutzung von Android geöffnet hat, sind viele Mobiltelefonhersteller auf den Android-Zug aufgesprungen.
Googles Android basiert auf dem Open-Source-Programm Apache Harmony und seinen Klassen und nicht auf dem von Sun entwickelten Java Development Kit (JDK) und Java ME. Für jemanden, der Code in Eclipse schreibt, werden sie fast identisch aussehen. In vielen anderen Fällen spielt dies keine Rolle, da bei der Android-Entwicklung viele XML-Formulare verwendet werden. Wenn sich die beiden Entwicklungs-Frameworks jedoch voneinander entfernen, kann diese Aufteilung zu einem großen Problem werden.
Fordern Sie Desktop-Erde zurück
Die meisten Leute denken immer noch, dass Java auf dem Desktop nie erfolgreich war, und das ist Vergangenheit. Heute dringt Java langsam, aber stetig in jeden Winkel moderner Betriebssysteme vor. Während in Swing geschriebene Standardanwendungen weiterhin Probleme damit haben, auf die grundlegendsten Teile jeder Plattform abzuzielen, ist es mit neueren Entwicklungsplattformen und Frameworks wie JavaFX und Web Start möglich, Software effektiv über das Web bereitzustellen. Die native Plattform übernimmt das gesamte Caching von Java Archives (JARs). Durch Klicken auf einen Link, manchmal gefolgt von ein paar Klicks auf ein Dialogfeld zur Erteilung von Berechtigungen, kann die Software installiert und aktualisiert werden und kann jederzeit ausgeführt werden.
JavaFX ist immer noch eine echte Unbekannte. Die Grafikfähigkeiten sind mittlerweile mit denen von Adobes Flash konkurrenzfähig; die Computer-Engine unterstützt den Großteil der Java-API, aber die Sprache ist eine seltsame Mischung aus echtem Java, JavaScript und anderen Auszeichnungssprachen. Der Code ist einfacher als bei normalem Java, daher müssen Java-Programmierer neue Dinge lernen. Für ein sehr interaktives Desktop-Tool kann es sich jedoch lohnen, die neue Animationsklasse zu erlernen. Web Start verbessert weiterhin langsam die Möglichkeit, Software über den Browser direkt auf dem Desktop bereitzustellen.
Ergreifen Sie das eingebettete Feld
Java gedeiht auch dort, wo man es am wenigsten erwartet. Während C-Programmierer die cleveren Speicher- und schnellen Ausführungsfähigkeiten der Java Virtual Machine vielleicht nie anerkennen, zeigt der Erfolg von Java bei Nicht-Smartphones, Set-Top-Boxen, eingebetteten Chips, Kindles und anderen Geräten mit geringem Stromverbrauch: Vollkommen in der Lage, damit anzugeben eingebettete Anwendungen. Die Popularität von Java hilft Programmierern auch dabei, von großen Plattformen auf kleine Plattformen umzusteigen. Obwohl es nicht einfach ist, von der Entwicklung von Unternehmensanwendungen für Großrechner auf die Entwicklung kleinen eingebetteten Codes umzusteigen, macht der Java-Standard diesen Übergang viel einfacher als viele andere Tools.
Auch Java-Pakete werden immer kleiner. Gosling verwendete Staub, um einen münzgroßen, Java-fähigen Computer zu beschreiben. JavaCard, eine virtuelle Maschine und API für solch kleine Pakete, steht kurz vor der Einführung von Version 3.0, einer Meilensteinversion, die Netzwerkkonnektivitätsfunktionen hinzufügen wird. Obwohl diese kleinen Punkte noch nicht klein genug sind, um in das menschliche Auge zu passen, sind sie durch die Möglichkeit, direkt mit dem Internet zu kommunizieren, sehr verlockend.
Werden sich die Wege der Partner trennen?
Die größte Sorge aller Entwickler ist: Welche Interessenkonflikte werden sich ändern, wenn die Übernahme von Sun durch Oracle abgeschlossen ist? Oracle ist durch die Erhebung hoher Softwarelizenzgebühren gewachsen und seine Software kann auf jeder Hardware ausgeführt werden, die Kunden kaufen möchten. Sun hingegen verschenkt Software normalerweise kostenlos und verdient dann etwas Geld mit dem Verkauf von Servern. Diese Vertriebsstrategien ändern sich möglicherweise nicht sofort, weil die Trägheit zu groß ist, aber niemand weiß, welche Entscheidungen Oracle in Zukunft treffen wird.
Einige glauben, dass Oracles Versäumnis, hohe Lizenzgebühren in der Vergangenheit zu erheben, Ellison nur dazu ermutigen wird, ähnliche Taktiken mit Sun anzuwenden. Vielleicht ist das Vertriebsteam von Oracle gerade auf der Suche nach dieser Gelegenheit: Die Lizenzgebühren werden schrittweise erhöht, wo Java früher kostenlos war. Um das Neuschreiben von Java-EE-Anwendungen (Java Platform Enterprise Edition) zu vermeiden, würden viele Unternehmen wahrscheinlich lieber 100, 200 oder sogar 1 Million US-Dollar pro CPU zahlen.
Kritiker weisen darauf hin, dass Oracle problemlos neue Versionen der Java Virtual Machine mit unterschiedlichen Leistungsstufen für verschiedene Märkte entwickeln könne. Virtuelle Desktop-Maschinen bleiben möglicherweise kostenlos, Oracle bezahlt möglicherweise sogar Computeranbieter für die Vermarktung von Java und JavaFX, und Leistungsverbesserungen bei der Handhabung extremen Multithreadings können mit sehr hohen Kosten verbunden sein. Es gibt viele Möglichkeiten, mit den Benutzern Geld zu verdienen, und die Lizenzgebühren sind oft viel günstiger: Es ist viel teurer, wenn widerspenstige Programmierer zunächst eine neue Sprache lernen und dann die Codebasis neu schreiben.
Einige Leute glauben jedoch, dass Oracle diesen Schritt möglicherweise nicht übernehmen wird. Eine Quelle in der Nähe von Sleepycat, dem 2006 von Oracle übernommenen Open-Source-Datenbankunternehmen, sagte, Oracle habe die Größe seines technischen Teams etwa verdoppelt, während alle Doppellizenzierungsmodelle intakt blieben. Software gibt es immer noch entweder in Open-Source- oder kommerzieller Lizenzform. Wenn Oracle Java wie Sleepycat behandeln würde, wären Community-Lizenzen und andere Optionen immer noch so kostenlos und weit verbreitet wie eh und je, und es stünden mehr Ingenieure zur Verfügung, um den Code zu verbessern.
Es bleiben tiefergehende Fragen zu langfristigen Beziehungen mit anderen großen Java-Partnern. Google unterstützt weiterhin Apache Harmony, ein Projekt mit mehr als 1,25 Millionen Codezeilen, das offenbar darauf aus ist, Suns Status als Zentrum der Welt zu untergraben. IBM hat den Bieterkrieg um Sun verloren und findet nun, dass der Rivale Oracle stärker ist. IBM hat die Eclipse-Entwicklungstools entwickelt und könnte auch damit beginnen, die Java-Plattform in eine andere Richtung zu entwickeln.
Andere Partner waren aggressiver. Vishal Sikka, Chief Technology Officer von SAP, hat Sun wiederholt gebeten, den Java Community Process (JCP) zu veröffentlichen, und konzentrierte sich dabei auf den von Oracle im Jahr 2007 vorgeschlagenen Plan: die Übergabe der Kontrolle an eine offene, unabhängige, herstellerneutrale Standardisierungsorganisation und alle Standardisierungsorganisationen Die Teilnahme der Mitglieder erfolgt unter der Prämisse der Chancengleichheit. Während sich Oracle zu den Details weitgehend zurückhielt, kann man mit Sicherheit davon ausgehen, dass das Unternehmen für einige der Ideen, die es von Sun geerbt hat, wieder Respekt erlangen wird.
Obwohl andere Partner möglicherweise Einschüchterungsversuche unternehmen, denken sie möglicherweise über die Frage des Abschlusses nach, da alle tatsächlich voneinander zurückgehalten werden und jedes übermäßige Verhalten wahrscheinlich blockiert wird, da jeder erkennt, dass es, sobald es geschrieben ist, überall Vorteile von Betriebskonzepten gibt. Wenn für ein Android-Telefon geschriebener Code nicht einfach auf einen Blu-ray-Player oder Glassfish-Server von Sony migriert werden kann, besteht die Möglichkeit, dass eine andere Sprache entsteht. Tatsächlich schreiben mehrere Unternehmen bereits Toolkits, mit denen Benutzer Ruby on Rails- oder Python-Software problemlos auf dem iPhone ausführen können.
Darüber hinaus könnten viele dieser neueren Sprachen zu ernsthaften Konkurrenten werden, und zu viele interne Machtkämpfe werden ihnen nur dabei helfen, an Boden zu gewinnen. Es gibt Dutzende sehr guter, weniger bekannter Open-Source-Pakete, die normalerweise mit ein wenig Konvertierung durch engagierte Enthusiasten auf jede Plattform portiert werden können. Beispielsweise ist Python in einigen wissenschaftlichen Bereichen bereits die Hauptsprache, und Google hat Python anstelle von Java als erste von seiner App Engine unterstützte Sprache ausgewählt. Während IBM, Oracle und Google sich im Wettlauf um die Vorherrschaft möglicherweise gegenseitig verdrängen, müssen sie erkennen, dass alle von der Standardisierung und nicht vom Monopol profitieren. Wenn jemand es wagt, andere zu sehr auszuschließen und zu versuchen, Java zu kontrollieren, könnten andere Anbieter zu ihren Konkurrenten überstürzen.
Eröffnet Java auch einen App Store?
Die Tatsache, dass die Java-Codebasis relativ kohärent und relativ standardisiert bleibt, hat zu Spekulationen darüber geführt, wie Sun (und Oracle, falls die Fusion zustande kommt) die Allgegenwärtigkeit von Java ausnutzen könnten, um ein Vermögen zu machen, ohne die Lizenzgebühren zu erhöhen und Druck auf alle auszuüben? Was wäre, wenn jemand einen App Store für das gesamte Java-Ökosystem entwickeln würde, der in Java geschriebene Widgets genauso verkaufen würde wie Apps für das iPhone? Sie könnten auf Desktops, Telefonen, Blu-ray-Playern oder auf jeder anderen Plattform mit Java laufen ?
In letzter Zeit gibt es eine beträchtliche Anzahl von Anwendungen für Android-Telefone, und Sun plant auch einen Java-Store, damit Benutzer die Anwendungen einfach auf den Desktop ziehen oder einfach etwas mehr Code schreiben können, um jede Anwendung kombiniert zum Desktop hinzuzufügen , können sie in fast jeder Ecke der Java-Welt ausgeführt werden. Dennoch kann der Umgang mit sehr unterschiedlichen Bildschirmen und Benutzeroberflächen eine Herausforderung sein.
Stellen Sie sich vor, wie attraktiv dieses Szenario ist: Eine von einem Entwickler geschriebene Anwendung läuft auf einem Android-Telefon, er arbeitet an seinem Schreibtisch an einer Aufgabe und wenn er nach Hause kommt, läuft sie reibungslos auf dem Blu-ray-Player im Wohnzimmer.
Es ist sogar ein wenig unerwartet, Java-Anwendungen den Menschen zugänglich zu machen, die auf der Couch sitzen, da die Java-Sprache in ihren Anfängen, als sie Oak hieß, ursprünglich für die Ausführung auf Set-Top-Boxen gedacht war. Diese Vision wird auf den größten Vorteilen der Java-Plattform basieren: Popularität und plattformübergreifende Stabilität. Vielleicht werden diese Vorteile dazu beitragen, dass Java seinem Erfinder fortlaufende Einnahmen bringt.