Świąteczny tydzień rządzi się swoimi prawami, w związku z czym nie pojawiło się za wiele „łamiących” newsów. Za to mamy dla Was trzy przeglądówki, które z pewności będą interesujące. Zapraszamy do lektury!
1. Skategoryzowana lista wszystkich nowości między JDK 8 a 16
Bardzo lubię szybki cykl releasowy Javy. Wprawdzie ze strony społeczności innych języków (niedawno sieć obiegł tekst pokazujący problemy, jakie powoduje to w wypadku Rusta, a sami tydzień temu pisaliśmy o krytyce z jaką spotkała się Scala), ale uważam, że Oracle bardzo dobrze sobie z tym poradził. Równoległe posiadanie wersji Long-Time Support oraz co półrocznych, rozwojowych edycji jest bardzo dobrym kompromisem. Podejście oparte o “Release Train” sprawia, że jeśli jakiś “ficzur” nie jest gotowy, to po prostu trafia do kolejnej edycji, która ukaże się za 6 miesięcy.
Jednocześnie jednak zauważam pewną wadę takiego podejścia. Jeszcze za czasów Javy 8, śledzenie tego języka było bardzo proste. Co ~3 lata wychodziła nowa wersja, i nawet jeśli dostarczała ona bardzo wiele nowych możliwości dla programistów (jeżeli przebiliśmy się przez wszystkie zaprezentowane dodatki), to mieliśmy “spokój”. Dzisiaj nawet jeśli chcemy “upgradować się” tylko w wypadku LTSów, niejako musimy śledzić każde pośrednie wydanie – przy okazji premiery JDK 17 w release notesach nie będą pojawiały się zmiany np. z JDK 13. Chcąc nadrobić wszystko, co wydarzyło się w ekosystemie od ostatniego LTSa (dla przypomnienia – JDK 11), musielibyśmy sprawdzić, czy coś interesującego dla nas nie pojawiło się w JDK 12, 13, 14, 15 i 16. Może być to nieco uciążliwe.
Dlatego też z tak wielką radością przyjmujemy opracowania podobne do tego zaprezentowanego przez Advanced Web Machinery. W krótkim, zaledwie 14-minutowym tekście, Dávid Csákvári zrobił swoisty “rajd” po wszystkich zmianach, grupując je w koherentny przegląd wszystkiego, co wydarzyło się od czasu JDK 8. Bardzo wygodny, jest zaproponowany przez niego, sposób grupowania – poszczególne zmiany zebrane są w logicznych kategoriach takich jak choćby “współbieżność”, “Garbage Collectory” czy “poprawki bezpieczeństwa”. Pozwala to z jednej strony osobom, które zostały w tyle, szybko nadrobić zaległości, regularnie śledzącym zaś nowe wydania umożliwia szybką powtóreczkę. Bardzo polecamy.
Źródła:
- A categorized list of all Java and JVM features since JDK 8 to 16
- The biggest threat to Rust’s sustainability
- Scala is a Maintenance Nightmare
Zainstaluj teraz i czytaj tylko dobre teksty!
2. Przepięknie ilustrowany przewodnik po Kotlinie
Drugi z prezentowanych dzisiaj linków mocno wybija się na tle konkurencji. Wyjątkowo powód, dla którego o nim piszemy nie jest związany z zawartością artykułu, ale formą w jakiej całość została przedstawiona.
Od dawna szukałem okazji by opowiedzieć Wam o blogu “Dave Leeds on Kotlin”. Autor w swoich publikacjach nie wymyśla koła na nowo – mamy do czynienia raczej z dość standardowym wprowadzeniem do Kotlina, pochylającym się nad zagadnieniami takimi jak: kolekcje, nullowalność czy wyrażenia regularne. To, co wyróżnia autora nie tylko spośród grona innych blogerów, ale również bardzo dobrych przecież dokumentacji od Jetbrains, to fakt, że postanowił on tłumaczyć poszczególne koncepty, używając kreskówkowych grafik. Jako długoletni fan sztuki komiksowej muszę przyznać, że sprawia to bardzo dobre wrażenie i powinno być interesujące nie tylko dla nowicjusza, ale i dla Kotlinowych wyjadaczy.
Najnowszy tekst autora dotyczy “nullowalności” i w bardzo przystępny sposób tłumaczy, jak działają optionale, oraz jak Kotlin jako język pozwala w wygodny sposób się z nimi obchodzić. O ile wyjadacze nie znajdą dla siebie tutaj za wiele (aczkolwiek myślę, że warto zaglądnąć, żeby zobaczyć jak przystępnie tłumaczyć techniczne koncepty), o tyle jeśli chciałbym wprowadzić np. programistę Javy do świata Kotlina, ciężko byłoby mi znaleźć przystępniejsze źródło niż blog Dave.
Źródła:
Zainstaluj teraz i czytaj tylko dobre teksty!
3. Przegląd Scalowych bibliotek do programowania funkcyjnego
Scala umościła się w światku iloczynu lambda i chyba w nim właśnie pozostanie już na zawsze. O ile jeszcze kilka lat temu równowaga między podejściem obiektowym, a funkcyjnym nie była jeszcze aż tak zaburzona, to dzisiaj jednak choćby po stanie ekosystemu widać, że to drugie podejście zwyciężyło w sercach społeczności. Niech dowodem będzie wysyp różnorakich bibliotek pozwalających na zaspokojenie potrzeb funkcyjnych purystów. O ile doświadczeni programiści języka Lightbenda z pewnością cieszą się z wachlarzu opcji, o tyle dla kogoś wchodzącego do tego świata sytuacja może być ciutkę przytłaczająca.
Stąd też bardzo cieszy artykuł, którym mam okazję się z Wami podzielić. Autor bierze na warsztat dostępne rozwiązania (Scalaz, Cats, Monix oraz ZIO) i w przyjemny sposób pokazuje, w czym są one do siebie podobne, a co je odróżnia. Całość nie wymaga, co prawda w zasadzie znajomości samej Scali, ale na pewno przyda się znajomość funkcyjnych konceptów. Na szczęście autor każdorazowo przywołując Monoid czy Functor, odsyła do innych materiałów. Jeżeli zaś któreś z opisywanych rozwiązań Was zainteresuje, w samym tekście znajdziecie też sporo odnośników do materiałów pozwalających pogłębić wiedzę.
Zdecydo
wanie polecam ten artykuł każdej osobie, która zaczyna swoją przygodę z funkcyjnym programowaniem w Scali. Opracowanie z pewnością ułatwi odnalezienie się w gąszczu możliwości.