JAX 2015 – Tag 1

Avatar Datum: 24. April 2015
Autor: Christian Göbel


Dieses Jahr ging’s für mich zum ersten Mal nach Mainz zur JAX – der größten Java-Konferenz in Deutschland. Nach zwei Teilnahmen bei der WJAX in München, der kleinen Schwester der JAX, war ich natürlich gespannt, was in Mainz auf mich zukommen würde.

Kontext und Schlüssel-Themen im Überblick

Sebastian Meyen, Chefredakteur des Java-Magazins, eröffnete die Konferenz und ging auf die Schlüssel-Themen ein. Zum einen stand die JAX ganz im Zeichen des 20. Geburtstags von Java, der Begriff „Generation Java“ war zu hören. Neben den Java Core Themen sollten sich die Sessions im Kontext der Themen Agile Entwicklung, Microservices, DevOps, Continious Delivery, Cloud & Container (insbesondere Docker) bewegen.

Keynote „The prepared Mind“

Frei nach Louis Pasteur („Chance favors the prepared mind“) gab Adrian Colyer, der Vater von aspectJ, Einblicke in sein Denken. In welche Richtung bewegt sich die Java-Welt aus seiner Sicht? Der große Trend: finer-grained structures (lifecycles, services, deployment units, runtimes, organizations).

Dann gab er einen Abriss zu, aus seiner Sicht wegweisenden, Papers. Es fielen Aussagen wie „Immutability changes everything”. Außerdem ging er auf die verheißungsvollen Möglichkeiten der Spracherkennung, dort konkret auf das Sirius-Projekt, ein.

Frege: ein Haskell für die JVM

Danach ging’s gleich mit einem eher exotischen Thema weiter: Frege, einem Haskell für die JVM, benannt nach Gottlob Frege, dem deutschen Philosophen, Mathematiker und Logiker. Da das Thema funktionale Programmierung im Zeitalter der Multicore-CPUs immer wichtiger für Software-Entwickler wird um Anwendungen zu entwickeln, die die volle Leistungsfähigkeit der heutigen Hardware bspw. durch Parallelisierung idiomatisch ausnutzen (Stichwort: seiteneffektfreie Funktionen), lohnt ein Blick über den Tellerrand, zu einer pur funktionalen Sprache wie Haskell. Und spätestens nachdem mit Java 8 nun seit letztem Jahr auch die Möglichkeit besteht, mit Java-Bordmitteln Kern-Elemente der Funktionalen Programmierung zu nutzen, ist das Thema ohnehin endlich voll im Mainstream angekommen.

Man nimmt durch so einen Blick über den Tellerrand meiner Erfahrung nach wieder neue Anregung für die alltägliche Arbeit mit Java mit. Es gelingt dadurch vielleicht, den eigenen Code ein Stück weit durchdachter zu gestalten, weil man bewusster mit den Stärken und Schwächen der eigenen Sprache umgeht. Gleichwohl sollte man auf keinen Fall versuchen, Idiome aus pure Funktionalen Sprachen wie Haskell 1:1 zu übernehmen.

JSF meets JavaScript

Nach diesen Funktionalen Ausflügen in die Welt des Lambda-Kalküls, holte einen eine JSF-Session wieder auf den Boden der Tatsachen zurück. Hier wurden Ansätze aus der Praxis eines erfahrenen JSF-Entwicklers vorgestellt. Spannend war zu hören wie andere Firmen bekannte JSF-Problemstellungen adressieren und z.B. mit Features aus Version 2.2 wie HTML-Friendly Markup und Pass-Through Elements elegante Möglichkeiten finden, um neue HTML5-Tags zu nutzen, ohne die Vorteile von JSF wie Value-Bindings aufgeben zu müssen.

Auch für uns wohl bekannte Problemstellungen wie dem Umgang von jQuery-Selektionen von JSF-Ids, die einen Doppelpunkt enthalten, gab’s interessante Lösungsansätze zu sehen. Abgerundet wurde der Überblick mit einer Vorstellung der Möglichkeiten der JSON-Integration in JSF.

Danach ging’s mit der Diskussion eines Themas weiter, dass die JSF-Welt offenbar polarisiert: PrimeFaces. Die einhellige Meinung ist, dass PrimeFaces eine ausgereifte Komponente-Suite darstellt, mit der sich in einer frühen bis mittleren Projektphase fast nur gute Erfahrungen machen lassen – ein Quick Win. Schwierigkeiten treten wohl erst in weiter fortgeschritten Phasen eines Projekts auf, wenn zum Beispiel der ein oder andere Bug in einer eingesetzten Komponente zu Tage tritt. Der Speaker setzt daher in seiner Firma auf eigens entwickelte JSF-Komponenten. Um mit PrimeFaces vergleichbare Ergebnisse zu erzielen, ist fundiertes JavaScript Know-How nötig. Das Investment lohnt sich jedoch. Man verliert auch JavaScript-Abhängigkeiten von PrimeFaces (wie bspw. zur eingesetzte jQuery-Version) und gewinnt volle Kontrolle über die genutzten Komponenten.

Möglich wird die Entwicklung von eigenen leistungsfähigen und AJAXifizierter JSF-Komponenten nach Meinung des Experten nur mittels „Enterprise JavaScript“. Man mag einem solchen Begriff gegenüberstehen wie man will, gemeint ist letztendlich der Einsatz von Konzepten und Tools, die auf der Serverseite bereits seit langem zum guten Ton gehören: möglichst wenig oder gar keine globalen Zustände; Namespaces und Modularisierung (z.B. mittels Grunt); Dependency-Management; Unit-Tests; statische Code-Analyse und Minifying.

Fazit des Speakers: „ohne JavaScript Build-System keine ‚enterprise‘-fähige JavaScript-Entwicklung“.

Kommentare

Selber kommentieren:






Weitere Beiträge zum Thema Technologie


Zepto.js

Autor: Benjamin Hofmann


Technologie


Heute nur ein kurzer Link zu einer Alternative zu jQuery mit einem wesentlich kleinerem Footprint (30 statt 85 KB), aber der gleichen API und Funktionalität: Zepto.js Bei einem unserer Kunden ist das bereits im Einsatz und mittels folgender Zusatz-Module und einem kleinen Polyfill auch als Basis für das imx.Autocomplete und imx.Mapwork im Einsatz, welche beide …


Beitrag lesen
30.
Sep.
2016

The Vanilla Javascript Repository

Autor: Benjamin Hofmann


Technologie // User Experience & Design


Und gleich noch ein Linktipp für all diejenigen, die wie ich, nur ungern jQuery einsetzen und ihre Seiten dadurch aufblähen oder verlangsamen. Unter Vanilla List gibt es eine optisch sehr ansprechende Sammlung von Skripten, die auf Vanilla JS aufbauen und viele unserer Anwendungsfälle abdecken können. Sehr schön ist auch die direkte Anzeige davon, ob eine …


Beitrag lesen
23.
Sep.
2016

Follow-up zu Vortrag beim imx.Camp – „Technologie-Umstellung bei Twitter“

Autor: Christian Göbel


Technologie


Wie mir gerade bewusst wird, muss ich eine Aussage aus meinem Vortrag beim imx.Camp korrigieren: Twitter ist nicht bei der US-Präsidentschaftswahl im Jahre 2008 in weiten Teilen von Ruby auf Scala (Java Virtual Machine) umgestiegen, sondern erst während der US-Wahlen im Jahre 2012. Wen’s interessiert, der kann die Hintergründe hier nachlesen: Twitter’s Shift from Ruby …


Beitrag lesen
22.
Oktober
2015

Von Zend_Date und den ersten Tagen im Jahr

Autor: Benjamin Hofmann


Technologie


Ebene bin ich auf eine interessante Sache bei der Verwendung von Zend_Date und dessen Datumskonstanten (Link) gestoßen. Verwendet man die Konstante Zend_Date::YEAR_8601, die sich nach ISO 8601 richtet, wird das Jahr nicht nach der Woche berechnet, in der sich der gegebene Tag befindet. Nun ist es ja bekanntermaßen so, dass sich die letzte Woche eines …


Beitrag lesen
19.
Dez.
2011