JAX 2015 – Tag 1


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“.

Dieser Artikel wurde verschlagwortet unter:


Kommentare

Selber kommentieren:






Weitere Beiträge zum Thema Technologie


Einrichten des GoogleTagManagers

Autor*in:


Technologie


Zum Hintergrund: seit kurzem verwenden wir den GoogleTagManager(GTM) bei den Hörnerdörfern. Ziel ist es die diversen Analytics Accounts die hier verwendet werden (Bolsterlang, Fischen etc.) unter einen Hut zu bringen. Hierzu kann man im Tagmanager Profil Regeln und Tags erstellen, anhand derer das Tracking dann ausgeführt wird (dazu später mehr). Ermöglicht  wird das Ganze über …


Beitrag lesen
26
AUG
14

Fancybox: JS-Fehler mit jQuery 1.9+

Autor*in: Stefan Oswald


Technologie


Die letzte freie Version von Fancybox (1.3.4) beinhaltet eine Inkompatibilität mit jQuery ab Version 1.9, da dort die Unterstützung für jQuery.browser eingestellt worden ist. Darauf will das Fancybox-Script aber zugreifen. Das hat zur Folge, dass es auf der Konsole des verwendeten Browsers zu einer Fehlermeldung kommt und dass ggf. sonstiger JavaScript Code auf der Seite …


Beitrag lesen
25
MRZ
14

PHP-Funktionen in PHPUnit testen

Autor*in: Benjamin Hofmann


Technologie


Gestern bin ich auf eine interessante Erweiterung für PHPUnit gestoßen, die es erlaubt auch reine Funktionen als Mock-Objekte anzulegen und deren Verhalten damit zu testen: PHP-Mock bzw. dessen Erweiterung für die Nutzung in PHPUnit. Damit kann man dann sehr bequem auch interne Funktionen testen, z.B. file_get_contents() oder auch ein mail(). Ein so gearteter Test könnte …


Beitrag lesen
13
JAN
17

The Vanilla Javascript Repository

Autor*in: 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
16