Před týdnem jsem byl pozváni na přednášku Juergena Höellera – jednoho z autorů Spring Frameworku, který již léta dohlíží na směrování tohoto velmi populárního aplikačního rámce našich Java aplikací. Akci organizovala společnost Morosystems v Brně a tímto jim děkujeme za pozvání. Ačkoliv nahraný materiál není přímo z dílny Kafemlejnek.TV rádi bychom Vám jej nabídnuli zde ke shlédnutí, protože se podle našeho názoru jedná o vyjímečný materiál.
Mimo specifických vlastností týkajících se páté verze Spring Frameworku se Juergen na přednášce rozhovořil také o jeho osobních vizích, kam bude směrovat další vývoj v oblasti Java aplikací a důvodech některých rozhodnutí, které ve Springu učinili.
Abych Vás nalákal na poslechnutí kompletní přednášky uvedu pár bodů, které mě osobně překvapily:
- Spring 5.X už nebude obsahovat podporu pro portlety, tato technologie je dle Juergena už několik let mrtvá a nyní už natolik, aby se její podpora úplně odstranila – jediný, kdo portlety ještě používá je Liferay, ale podle Juergena prostě jedou na dávno mrtvém koni
- do budoucna si Juergen myslí, že slepými větvemu jsou i další server side rendering frameworky jako třeba Tapestry nebo Wicket – toto mě osobně přeci jen trochu překvapilo … nicméně zdá se, že client side single page app jsou dlouhodobějším trendem
- Spring začíná ve větší míře spolupracovat s autory Kotlinu – krom toho, že se jedná o zajímavý jazyk kombinující funkcionální a OO programování, také především proto, že autoři mají o spolupráci zájem a vzájemně si s týmem Springu vycházejí vstříc
- naopak se Scala komunitou se podobná spolupráce navázat nepodařila a Juergen ji více méně hází přes palubu
- novému modulárnímu systému Jigsaw v Java 9 nedává moc velkou šanci na úspěch mezi řadovými aplikačními vývojáři, ani Spring nebude dodávat prozatím žádné module deskriptory pro své knihovny
- OSGI bylo pro Spring obrovské zklamání a je velmi skeptický i v souvislosti s Jigsaw – modulární návrh na úrovni jazyka přináší řadu inherentních a velmi komplexních problémů, které nelze jednoduše řešit
- snaží se nalézt cesty, jak zrychlit Spring boot up time – ve verzi 5 přinášejí možnost funkcionálního sestavení Spring kontextu, který by vůbec neměl vyžadovat reflexní analýzu tříd a měl by být velmi rychlý (nicméně pro programátora o něco pracnější)
- celkově se Juergenovi líbí reaktivní přístup k programování i když přiznává, že to opět není cesta pro každého a má smysl se jí vydat pouze tehdy, nestačí-li současná architektura zvládat požadavky kladené na aplikaci … a dost možná začít s tímto přístupem experimentovat zpočátku pouze na “horkých” místech aplikace a sbírat zkušenosti nejprve tam … pokud je součástí i data store, je nutnou podmínkou reaktivní ovladač dané technologie – nebo naopak pro ukládání dat vybírat takový typ databáze, který reaktivní přístup umožňuje
Podobných myšlenek je v přednášce celá řada, a proto si ji rozhodně nenechte ujít.