W dniu dzisiejszym obrodziło przede wszystkim nowymi wydaniami – tych jest aż 4(!). Żeby jednak nieco urozmaicić wydanie, mamy też informacje o unifikacji Scala.js i tutorial do KotlinDL.
1. Scala.js doczeka się “unifikacji”
Ten rok będzie rokiem Scali.js! Bo przecież skoro Scala Center chce dokonać unifikacji jej ekosystemu pod swoimi skrzydłami, to już nic jej nie powstrzyma.
A tak żarty na bok – ja szalenie lubię ten jednak dość niszowy projekt, dlatego też mocno trzymam kciuki i cieszę się, że w dalszym ciągu jest jednak relatywnie dynamicznie rozwijany i ciągnięty na bieżąco za rozwojem samej Scali. Ostatnio ekosystem tego języka doczekał się kilku strategicznych “porzuceń”, i choć działo się to głównie w wyniku “odchudzania” Lightbendu (jak to było z Play Framework), to cieszy fakt, że Scala Center konsekwentnie pcha swoje projekty.
W ramach wspomnianej unifikacji – której pierwsza iteracja potrwa około miesiąc – należy się spodziewać odkurzenia strony internetowej, poprawienia jakości tutoriali, a także dopisania brakujących narzędzi, co poprawić ma “Developer Experience” przy użyciu frameworka. Jest to z mojej perspektywy bardzo pozytywny ruch – to właśnie powyższe aspekty są najczęściej pomijane w ramach pracy nad otwarto-źródłowym kodem, a często stanowią o być albo nie być danej inicjatywy. Z rzeczy bliżej kodu, dokonany zostanie przegląd najważniejszych bibliotek i podjęta decyzja, które powinny zostać wsparte w pierwszej kolejności.
Zainstaluj teraz i czytaj tylko dobre teksty!
2. Buzzwordowa bomba – Object Detection przy pomocy KotlinDL i ktor’a
Wyjątkowo lubię to, jak “pojemnym” projektem jest Kotlin, a także jak bardzo JetBrains stara się, żeby nikt o tej pojemności nie zapomniał. Na ich stronie regularnie publikowane są różnego rodzaju case studies, jedne nieco bardziej oczywiste (jak np. kotlinowe rozwiązywania Advent of Code), inne znacznie bardziej odjechane, jak bohater tego paragrafu.
Otóż JetBrains pokazało w zeszłym tygodniu, jak stworzyć przy użyciu biblioteki KotlinDL prosty Object Detector. Oprócz jednak tego, że całość jest przystępnym wprowadzeniem, to jakby nie wierząc w popularność samego Deep Learningu na Kotlinie, postanowiono całość pożenić z innym popularnym projektem – ktor-em. Sprawia to, że żądni nauki mogą upiec dwie pieczenie na jednym ogniu – nie tylko stworzą sobie swój pierwszy model (czy raczej ładnie zapakują istniejący), co jeszcze będą w stanie odpalić go po API przy użyciu popularnego frameworka.
Myślę, że całość stanowi bardzo dobre wprowadzenie dla osób, które znają Kotlina i chciałyby liznąć trochę tajniki Deep Learningu. Wiadomo, ekspertami się w żadnym wypadku nie zostaną, ale całość może stanowić dobry “gateway drug” dla chcących się trochę pobawić tym, na co pozwala nowoczesne AI – a przy okazji czegoś się nauczyć.
Zainstaluj teraz i czytaj tylko dobre teksty!
3. Nowe wydania: Gradle, Quarkus, Micronaut i… JKube
A na koniec, skrótowy opis 4(!) różnych nowych wydań z ostatnich tygodni. Żadne z nich nie jest czymś “łamiącym”, ale każde przynosi coś przynajmniej ciekawego.
W dniu dzisiejszym pojawił się Gradle w wersji 7.4. Co przynosi? Tak naprawdę ucieszą się najbardziej osoby posiadający projekty multi modułowe. Głównymi highlightami wydania jest bowiem generowanie raportów (czy to z testów, czy to np. z pokrycia kodem) z wielu projektów na raz, dzięki czemu otrzymujesz zbiorczy plik z wszystkimi informacjami z każdemu z buildów. Oprócz tego ucieszą się też użytkownicy Intellij IDEA, ponieważ wprowadzono automatyczne oznaczanie w IDE katalogów z kodem testowym, zgodnie z konfiguracją z Gradle.
Kolejna nowość to Quarkus w wersji 2.7.0. Tutaj słowem kluczem jest Quarkus CLI, która wreszcie doczekała się umieszczenia w miejscach, skąd ludzie realnie ściągają CLI – czyli Homebrew, SDKMan i resztę zarządzania pakietami. Oprócz tego wprowadzono trochę reaktywności – Oracle DB dostało reaktywnego klienta, a także wsparcie serializacji kotlinowej dla RESTEasy Reactive. Ostatnim ciekawym dodatkiem jest SmallRye Stork w wersji 1.0 – biblioteka Service Discovery zgodna ze specyfikacją Jakarty EE.
Trzecią z ciekawych nowych edycji jest Micronaut w wersji 3.3. Ten przynosi min. błyskawiczne wsparcie dla opisywanego tydzień temu GraalVM 22.0, ale głównym daniem całości jest Micronaut AOT. Ten nowy moduł Ahead-of-Time Compilation ma umożliwić znacznie przyspieszenie startu aplikacji poprzez wykonywanie części niezbędnych do uruchomienia operacji już na poziomie kompilacji. Dzieje się tak min. poprzez usuwanie nadmiarowych klas z finalnej paczki. Więcej szczegółów możecie przeczytać w poście szerzej opisującym tą funkcjonalność.
Ostatni z dzisiejszych release notes dotyczy zaś projektu na tyle niszowego, że przyznam iż pomimo pisania naszych przeglądów grubo ponad roku, trafiłem na niego po raz pierwszy, od razu jednak przykuł moją uwagę. Eclipse JKube to zbiór wtyczek i bibliotek, które pomagają w tworzeniu javowych aplikacji w wersji Cloud-Nativie. Zawiera narzędzia do budowania obrazów kontenerów przy użyciu Docker czy też JIBa, a ponadto umożliwia generowanie plików konfiguracyjnych klastra (YAML) i wdrażanie ich w klastrach Kubernetes lub OpenShift…. uff, całkiem konkretny kombajn. Okazuje się zresztą, że produkt jest kontynuacją znanego Wam może Fabric8, który był popularny jeszcze parę lat temu. Nowa wersja 1.6.0 to dość sztampowe podbicie zależności (Java 17), ale także usprawnienia współpracy z Helmem oraz Gradle.