Der AnfangDie JavaOne hat angefangen mit der Einführung durch Jonathan Schwarz (COO) und einigen anderen Leuten aus dem Software Bereich. Schwarz hat in den Mittelpunkt seines Vortrages das Thema Communities und Participation gestellt. Java sieht er als die Grundlage einer ganzen Menge von Anwendung, wenn nicht vom ganzen Web.
Mobile JavaEin wichtiger Eindruck für mich ist der Einfluss der mobilen Endgeräte auf Java. Inzwischen gibt es mehr Java-fähige mobile Endgeräte als Java-fähige PCs und dieses Thema führte in der Veranstaltung auch durch einen entsprechenden Fokus. So hat zum Beispiel Research in Motion, die den Blackberry für mobile EMails herstellen, Java Anwendungen gezeigt. Ein Herr von NTT Docomo (japanische Telefongesellschaft) stellte dar, dass von den 10 Mrd $, die sie mit mobilem Content machen, 6 Mrd $ auf Java basieren. Gespannt bin ich hier, was außer mobilen Spielen noch kommen wird.
Ein anderes interessantes Thema scheint JSR 208 (Java Business Integration) und die darauf basierende SOA Vision zu sein.
Sun NeWS
Die gesamte JavaOne hat einen deutlichen Sun Fokus und so gab es dann einige Infos von Sun. Zum einen will Sun seinen Application Server und sein Enterprise Service Bus Produkt (das JSR 208 implementiert) Open Source machen. Schwarz stellte dies als etwas dar, was Sun in Zukunft noch öfter machen wird. NetBeans wird in der gesammten Veranstaltung gepusht und es wurde dann gezeigt, wie einfach es ist, mit NetBeans eine AJAX (Asynchronous Java and XML) Anwendung zu bauen. Dabei handelt es sich um Anwendungen, die wie GMail oder Google Maps mit JavaScript dynamisch das DOM des HTML Dokuments ändern und zwar anhand von XML Daten, die vom Server kommen. Dieses Modell erlaubt wesentlich interaktivere Web Oberflächen. Ein weiteres Thema ist dtrace, mit dem man unter Solaris das Verhalten von Anwendungen tracen kann, und zwar coolerweise über die Ebenenen Java - C Libraries - Kernel hinweg, was integrierte Performance Untersuchungen erlaubt. dtrace ist übrigens auch Open Source und Solaris kostenlos...
Sehr spannend fand ich dann, dass Sun jetzt eine neue Workstation mit AMD Prozessor anbietet. Nun gut, das Business ist eigentlich tod. Aber Sun bietet die Maschine mit einem Service Vertrag und aller Software(u.a. Entwickler Tools) an und das für 30$/Monat. Weitere Kosten gibt es nicht. Das ist das erste Mal, dass ich mitbekomme, dass man das Handy Business Modell auf Hardware ausweitet.
IBM und Java
IBM hat nochmal sein Commitment zu Java bestätigt. Alle Enterprise IBM Produkte (WebSphere, DB2) werden interessanterweise auf Solaris AMD und Sparc portiert. Außerdem hat IBM die Java Lizenz um weitere 11 Jahre verlängert und sie sprachen "von den Dekaden, die noch kommen." Vielleicht ist das wirklich die Größenordnung, in denen man bei Java irgendwann denken muss...
Wie geht es weiter mit Java?Eine weitere Änderung ist auf der Namensebene: J2EE heißt jetzt Java EE, J2SE Java SE und J2ME Java ME. Die Versionen haben jetzt kein .0 mehr, wahrscheinlich um die Entwickler, die keine .0 Version verwenden, zur Mitarbeit zu überreden. Das nächste Java ist also Java SE 6 und kommt Sommer 2006. Die Releasezyklen sollen 18 Monate lang werden, Java 7 kommt also Anfang 2008.
Neue Features:
- Ease of Developement
- Management (JMX in Java 5 war ja ein Anfang)
- JSR 223 Scripting Language Interface (Javascript, Rhino Implementierung)
- JSR 221 JDBC 4.0 mit mehr Annotations
- Javadoc Erweiterungen
- Desktop
- Java SE 6 wird Longhorn Look and Feel haben
- noch ein paar Punkte u.a. Java 2D mit besserem Text Rendering und OpenGL / Direct3D Nutzung
- More Open
- Unter http://mustang.dev.java.net gibt es die weekly build
- Man kann selber Sachen einreichen (Bug Fixes/Features)
- Dafür gibt es auch Mentoren (!)
- ...und man darf neuerdings auch eine modifizierte JVM nutzen, z.B. wenn man einen Bug selbst fixen will, um seine Anwendung produktiv zu bekommen
Auf technischer Ebene wird Mustang (Java 6) zum Beispiel auch in die JVM neue Bytecodes einbauen, um dynamische Sprachen (z.B. Jython) besser zu unterstützen. Ansonsten soll es neues in NIO geben, XML soll einfacher werden, Friend Sichtbarkeit über Package Grenzen (ein widerliches C++ mäßiges Feature, wie ich finde) und Method References.
Java 2 EE wird vor allem einfacher werden, um auch für Leute, die 2 Tier Anwendungen und einfache Web Anwendungen bauen, attraktiv zu werden. Das wissen wir ja schon länger und auch inhatlich gab es dann wenig überraschendes. So soll die Vereinfachung erreicht werden durch:
- Fokus auf POJOs
- Annotations für Web Services, XML, EJB und Datenbank Mapping
- Dependency Injection
Features gibt es vor allem im Bereich
- Web Services
- EJB
- Persistence
- Java Server Faces (JSF)
Ob das jetzt wirklich glücklich macht, sei dahin gestellt, denn diese Dinge kann man eben auch heute schon auf die eine oder andere Weise erreichen, z.B. kommt einem ja spontan Spring in den Sinn. Auf der anderen Seite ist es einfach die Richtung, in die Java EE gehen muss, denn dort warten die besten Möglichkeiten für eine weitere Expansion. Es ist also eigentlich nur ein Streit um die Methoden, nicht aber um das Ziel. Solche Streits sind jedoch meistens die härtesten.