W dzisiejszej edycji tylko dwie informacje (no, tak naprawdę trzy, ale jedna ciutkę zakamuflowana). Z lektury dowiecie się, jak wyglądają pracę nad wsparciem Waylanda a także… jak krok po kroku zbudować Springa. Zapraszamy do lektury!
1. Projekt Wakefield (Wayland na JVM) nabiera rumieńców ☺️
Philip Race jest jedną z osób, którą warto śledzić w ekosystemie JVM. Wprawdzie jego pole zainteresowań jest stosunkowo wąskie, ale mimo to wziął sobie na plecy dosyć niekochany element javowego ekosystemu. Kiedy inni programiści zajmują się modnymi tematami jak niskopoziomowy performance czy lekkie wątki (definicja mody programistów jest mało zrozumiała dla postronnych obserwatorów), Phillip postanowił zmodernizować Javę desktopową – i robi to z niezwykłą skutecznością. W ramach JDK 17 będziemy mogli zobaczyć Project Lanai – unowocześniony rendering macOS wykorzystujący współczesne wersje systemu i Metal API. Teraz ponowną inicjatywę przeprowadzić zamierza dla Linuxa i serwera wyświetleniowego Wayland.
O samym projekcie mieliśmy już okazję pisać, kiedy ciągle był dość mglistą ideą. Teraz wreszcie ma się to zmienić. Mimo, że ciągle pozostaje na poziomie proposala, całość dostała swoją realną nazwę (Wakefield Project) i komitet, który wyraził chęć kierowania działaniami. W jego skład wchodzi spora ekipa zarówno z JavyFX, jak i JetBrains. Wygląda więc na to, że mamy do czynienia z kolejnym (po wspomnianym już Lanaiu) projekcie, gdzie swoje palce maczać będą twórcy IntelliJ. Phillip odgraża się, że już w planach są pierwsze JEPy. Zanim jednak zespół będzie mógł przystąpić do pracy, komitet sterujący Javy musi zagłosować nad chęcią rozpoczęcia projektu. Wyniki poznamy 25 sierpnia.
Jak już tak hermetycznie dzisiaj, to nie można nie wspomnieć też o nowym wydaniu projektu Loom. Nowy Early Access oparty jest o JDK 18. Nie oznacza to oczywiście, że to wraz z JDK 18 nastąpi oficjalne wydanie – to po prostu jest jeszcze jedna edycja testowa. Z ciekawych rzeczy jest to pierwsze w historii wydanie Looma na architekturę ARM. Nowy build dodaje też długo oczekiwane Scope Locals, o których swego czasu mieliśmy okazję pisać. Jak zwykle przy okazji wydań Looma polecam wątek Redditowy, na którym klasycznie już aktywny jest sam Ron Pressler, jeden z liderów projektu, odpowiadający na pytania społeczności. Wywiązała się w nim też interesująca rozmowa na temat wersji LTS Javy – jeśli chcecie poznać opinie Rona na ten temat, sprawdźcie tutaj.
Źródła
- CFV: New Project: Wakefield
- Project Loom: JDK18 EA Build with AArch64 support is now available for download
- ScopeLocal (Java SE 17 & JDK 17 [build 7])
Zainstaluj teraz i czytaj tylko dobre teksty!
2. Zbuduj sobię od podstaw własnego Springa 🌿
Mówi się, że najlepszym sposobem w programowaniu, aby coś zrozumieć, jest napisać to od zera. Użytkownik Patresss (będący notabene Polakiem i jak się dokopałem – chwalący się swego czasu swoim projektem na naszym swojskim Wykopie) wziął sobie tę zasadę mocno do serca. Stworzył swojego własnego “bieda” Springa, który implementuje większość kluczowych mechanizmów języka.
Idąc krok po kroku przez repozytorium Git, autor opisał krok po kroku, jak zaimplementować dependency injection oraz wyjaśnia, czym są proxy i po co powstały. Dodatkowo, na przykładzie springowych adnotacji pokazuje, jak takowe zaimplementować od zera. Te wszystkie klocki ostatecznie spina do kupy w całkiem interesującą propozycję. Oczywiście, ciężko mówić tu o pełnej reimplementacji frameworka – nie znajdziemy tutaj implementacji takich API jak choćby Servlety, brakuje AutoConfiguracji (która jest szalenie ciekawym mechanizmem), po macoszemu potraktowana jest wszędobylskie w Springu refleksje. Zdecydowanie jednak jest to interesująca propozycja dla każdego chcącego zakasać rękawy i pobrudzić sobie ręce. Takie projekty to zawsze fajna zabawa.
Nasze zabawy nie są jak Twoje zabawy.
Przyznam, że czytając ten kod zrobiło mi się dość cieplutko na serduszku. W poprzedniej pracy mieliśmy okazję pisać własną “sklejkę” różnych standardów Java EE opartą m.in. na projekcie DeltaSpike (aż z ciekawości sprawdziłem czy żyje – ostatnią wersję otrzymał w 2020 roku, więc z pewnością nie można uznać go za żywego trupa). W ramach tej właśnie sklejki miałem przyjemność tworzyć własnego @Transactional opakowującego znajdującego się pod spodem jOOQa – było fajnie
Źródła
Pamiętajcie, żeby spróbować Vived,jeśli chcesz otrzymywać tego typu treści spersonalizowane pod Ciebie!