Wybór języka

Java 14

W czasie moich aktywności online dotyczących tłumaczenia rekordów parę osób rzuciło podkręconą piłkę “no a Lombok?” W szczególności pytanie przybiera formę “skoro rekordy są immutable, to czym się różnią od @Value z Lomboka?”
Na okoliczność wydania Javy 14 widziałem parę dyskusji przebiegających mniej więcej takim stylu: - O, rekordy w Javie, fajnie, w końcu mamy automatycznie generowane settery i gettery! - Nie, rekordy w Javie to POJOs bez setterów… - A, okay… Fajnie, w końcu mamy w Javie generowane Beany, ale bez setterów!
W poprzednim wpisie było o tym, jak utworzyć rekord od Javy 14 i po co w ogóle rekordy są. W tym wpisie na tapet bierzemy ograniczenia i możliwości rekordów.
Java 14 przyniosła nam rekordy (ang. records) jako preview feature. Było (jest?) przy tym sporo zamieszania, deklaracji i ciężkich obelg miotanych w kierunku wrażych bibliotek i wtyczek do IDE. Pozwólcie mi dorzucić moje trzy grosze.
W pogoni za nietrywialnymi przykładami do zilustrowania zastosowań JEPa 305 niektóre osoby mogły zapędzić się za daleko. W szczególności w trudniejszy teren metody equals() obecnej w każdym obiekcie w Javie.
Java 14 zawiera wiele nowości. Jedną z nich (jako preview feature) jest dopasowywanie wzorców z instanceof (ang. pattern matching with instanceof). Ludzie programujący w językach wspierających paradygmat funkcyjny, np. w Scali, w Kotlinie (o Haskellu nie wspominając), w pierwszym odruchu widzą oczyma duszy swojej od razu piękne wyrażenie match / when, wyłuskiwanie danych, strażniki, dekonstruktory w obiektach stowarzyszonych itd.
Java 14 przyniosła nam Rekordy (poza wieloma innymi ciekawymi rzeczami). Dla wielu osób to powód, by twierdzić “koniec z generowaniem getterów dla JavaBeans” albo nawet “Lombok umarł”. Czy rzeczywiście tak jest? Co można zrobić z rekordami, czego nie można? Co z refleksją i serializacją? Prezentacja nie została jeszcze nagrana po polsku (ma się to zmienić w czerwcu 2020), pojawiła się w czasie AllTheTalks.online.
W mrocznych czasach musieliśmy czekać 3-4 lata, żeby zobaczyć nową wersję Javy. Teraz mamy dwa duże wydania każdego roku! Nowości z Javy możemy wykorzystać przed wydaniem kolejnego LTSa. Do rzeczy… Masz ochotę zobaczyć, co się stało w Javie 14? Wyrażenia switch osiadły na dobre? Czy teraz już nie będzie NPE? Rekordy? Pattern matching? Bloki tekstowe? Jeśli wydają Ci się interesujące, dajmy razem nura w te nowości! Prezentacja pojawiła się w tej formie (Deep Dive) na WrocławJUG i WarszawaJUG.

Wybór języka