Dzisiejsze wydanie jest dosyć ubogie w newsy, za to nowymi releasami nam mocno w tym tygodniu obrodziło. Wśród tych gwiazdą jest nowy Ktor, ale i programiści Javy znajdą coś dla siebie.
1. Project Loom uzyskuje status Kandydata
Zacznę krótko od ogłoszenia, na które wiele osób czekało. Pierwszy JEP Projektu Loom – Virtual Threads – otrzymał swój numerek JEP-425 i ostatecznie zyskał status „Kandydata”. Oznacza to, że istnieje spora szansa, że w którymś z kolejnych wydań Javy (może nawet dziewiętnastce…) dostaniemy go jako Preview. Czyżby następny LTS miał przynieść nam stabilnego Looma?
Wraz z “promocją” JEPa ukazał się fantastyczny materiał od znanego już naszym czytelnikom Nicolai Parloga. W dziesięciominutowym filmiku zaprezentował on historię rozwoju wątków (w tym tych klasycznych), na jakie problemy odpowiadają te wirtualne, i jak programiści JVM i JDK od dłuższego czasu przygotowują się do ich wprowadzenia. Jest to chyba najlepsze „błyskawiczne” wprowadzenie do tematu z jakim miałem styczność, a osobiście wdziaiałem już naprawdę masę materiałów dotyczących Looma.
Źródła
Zainstaluj teraz i czytaj tylko dobre teksty!
2. ETK4J czyli Engineering Toolkit for Java
Druga pozycja z naszego przeglądu to narzędzie, które jakkolwiek niszowe by nie było, tak jak je zobaczyłem wiedziałem, że musi trafić do naszego przeglądu. Otóż trafiłem na projekt o pięknej nazwie Engineering Toolkit for Java. Jako, że studiowałem Automatykę i Robotykę, od razu zainteresowało mnie, co to tak naprawdę znaczy z punktu widzenia twórców i muszę przyznać, że biorąc pod uwagę zaledwie kilka gwiazdek na GitHubie, całość jest dość potężna.
Jak piszą sami twórcy, celem projektu jest stworzenie biblioteki, którą można wykorzystać do prototypowania rozwiązań typowo inżynierskich problemów. Tego kwiata trochę jest, ale to co wyróżnia ETK4J jest bycie w 100% w Javie – a nie, jak większość z rozwiązań które miałem przyjemność używać, bycie cienkim wrapperem nad kodem w C.
Biblioteka opiera się na wielu innych projektach – jest częściowo forkiem Jamy (z pewnymi zmianami, wykorzystuje również kod przetłumaczony z pythonowych SciPy i NumPy. Twórca “inspirację czerpał również ze świata C (a konkretnie bibliotece numal), oraz C#, portując część Math.NET. Nie wiem czy kiedykolwiek jeszcze będę miał potrzebę z niej korzystać (szczerze, to mam nadzieje, że nie), ale w studenckich latach bym się za nią pewnie pokroił. Mam nadzieję, że zdobędzie nieco szerszą popularność.
Źródła
Zainstaluj teraz i czytaj tylko dobre teksty!
3. Release Radar: Ktor, jReleaser, Helidon, jHipster
Ktor 2.0
Ze wszystkich nowych wydań w tym tygodniu, z pewnością tym największym jest nowe wydanie Ktor’a. Ktor to rozwijany przez JetBrains referencyny Framework dla Kotlina do tworzenia aplikacji webowych. Nowa edycja nie bez powodu ma duży “numerek” – wiele API (np. Pluginów) zostało przebudowane w zasadzie od podstaw, zgodnie z ostatnim duchem Kotlin Multiplatform Ktor zaczął wspierać min. platformę Native. Z mojej perspektywy jednak najciekawszą nowością jest (nareszcie) wsparcie Retries.
val client = HttpClient(CIO) {
install(HttpRequestRetry) {
maxRetries = 5
retryIf { request, response ->
!response.status.isSuccess()
}
retryOnExceptionIf { _, cause ->
cause is NetworkError
}
delayMillis { retry ->
retry * 3000L
} // retries in 3, 6, 9, etc. seconds
}
}
jReleaser 1.0.0
Rok po premierze oryginalnego wydania 0.1.0, pojawiła się wreszcie jego pierwsza stabilna edycja. Czym jest JReleaser? Narzędzie pozwala spakować Twoją aplikację do dystrybucji z popularnymi programami do pakowania, takimi jak Homebrew, Scoop, Chocolatey, Snapcraft i inne. Projekt powstał w inspiracji GoReleaser, a jego twórcami są Andres Almiray, Product Manager w Oracle oraz Max Raydahl Anderse, inżynier pracujący w RedHat. Wersja 1.0.0 poza symbolicznym osiągnięciem stabilności przynosi kosmiczną ilość zmian – większość z nich jest mała, ale sama ilość (prawie 300 mniejszych i większych zmian) robi wrażenie.
Helidon 2.5.0
Kolejną nową wersją, która ukazała się w zeszłym tygodniu była nowy Heldion, ale mimo całkiem ładnego, okrągłego numerka, przynosi on jakąś drobnicę, z której wybija się przede wszystkim lepsze wsparcie dla Oracle Cloud Infrastructure. Myślę, że jest logiczne, że jeżeli takie coś jest “highlightem”, to większość programistów nie ma za bardzo czego w tym wydaniu Helidona szukać
jHipster 7.8.0
A na koniec jHipster. Niedawno mieliśmy okazję pisać o Hilli od Vaadina, która jest nowym wcieleniem Vaadin Fusion – javowego frameworku dla FullStacków, wspierającego tworzenie aplikacji z Backendem w Javie i Frontem w TypeScriptcie. jHipster celuje w dokładnie tą samą publikę i od kilku lat był w tej niszy defacto standardem. Nowa wersja to przede wszystkim upgrade wspieranej Javy (do niedawno wydanej wersji osiemnastej) oraz Springa i wielu innych bibliotek. Z punktu widzenia nowych funkcjonalności, interesujące wydaje się być lepsze wsparcie dla Mikro Frontendów w React’cie.