Wybór języka

Moje prezentacje

Pierwsze moje wystąpienia publiczne (zwykle w zakresie IT) zacząłem dawać w 2016r. Do tej pory (styczeń 2022) wygłosiłem około 90 wykładów w różnych formatach: od Pecha Kucha (20 slajdów po 20 sekund każdy) do Deep Dive (2,5 godz.) Przemawiałem w Polsce i w Europie (i w Afryce już też), zarówno na małych wydarzeniach społecznościowych, jak i w ogromnych salach kinowych. Wiele z moich prezentacji (ale nie wszystkie) ma zarówno wersję polską, jak i angielską. Niektóre były wygłoszone wiele razy, niektóre tylko raz, niektóre zostały nagrodzone, ale wszystkie były tworzone z pasją.

Jako prelegent miałem przyjemność wystąpić na paru konferencjach i JUGach, m.in. 4Developers Festival, BoilingFrogs, ChamberConf, CodeCamp Romania, CodeMotion Milan, CodeMotion Spain, CoffeeJUG Lviv, Confitura, Devoxx Belgium, Devoxx France, Devoxx Morocco, Devoxx Poland, Devoxx UK, Devoxx Ukraine, GDG DevFest Toulouse, GDG DevFest Wroclaw, GeeCON Poland, GeeCON Prague, GreenField Conf, Java Developer Days, JavaDays Lviv, JAVIPS, jLove, JPoint Russia, ScalaLove, SegFault (& CoreDump), SpreadIT, VoxxedDays Romania, ChicagoJUG, SilesiaJUG, TrójmiastoJUG, VirtualJUG, WarszawaJUG, WroclawJUG i innych.

Kiedy mam czas, aby mówić o Javie przez ponad godzinę, jest to Deep Dive (nazywam to “Nowości godne uwagi”). Kiedy mam mniej niż czterdzieści minut, możemy ledwo dotknąć powierzchni, stąd nazywa się to wtedy “Surfing Modern Java”. Wszystko pomiędzy, taki normalny wykład, to więcej niż surfowanie, ale mniej niż głębokie nurkowanie, stąd “Sailing Modern Java”. Podczas takiego wykładu zazwyczaj omawiam jedno lub dwa najnowsze wydania, czasami wspominając o tym, co nas czeka, starając się przemycić jak najwięcej przykładów kodu.
Minęło kolejne pół roku, pora na wdrożenie kolejnej wersji Javy™ na produkcji. Tym razem na pewno, bo to w końcu LTS. ;-) Zdaniem wielu “Java jest wolna”. Okazuje się, że rozwój Javy jest tak “wolny”, że kolejne wydania nie są tylko podbiciem wersji, bo mogą znacząco zmieniać reguły gry. To dobry powód na kolejny deep dive w Javie. Będzie mowa o: Pattern Matching for switch, Record Patterns, Virtual Threads, Simple Web server, co wyleciało i wyleci, i innych.
“Nie jesteś w stanie zrozumieć języka, zanim nie zrozumiesz przynajmniej dwóch”. – Geoffrey Willans Przez lata programowałem głównie w językach działających na JVM. Czasem w innych językach wywodzących się z C, co było ciekawe i zarazem dość łatwe. Kilka miesięcy temu (ze względu na zmianę pracy) musiałem się szybko nauczyć programować w Go. Co prawda słowa kluczowe w Go wyglądają podobnie do tych z C, jednak wiele koncepcji jest innych, wręcz niespotykanych w innych językach wywodzących się z C, szczególnie tych zorientowanych na obiekty.
Java jest naprawdę świetna, gdy trzeba napisać program “Hello, World!” Jest również genialna dla wyrafinowanych systemów i algorytmów, pod warunkiem, że ich autorzy piszą kod, który przestrzega kilku dość prostych umów i unika oczywistych pułapek. Istnieje kilka mantr dotyczących najnowszych cech współczesnej Javy, takich jak: rekordy mogą wszędzie zastąpić JavaBeans nigdy nie musisz pisać hashCode() dla rekordów dopasowanie wzorca za pomocą instanceof jest najlepszym narzędziem dla equals() po prostu zignoruj --illegal-access lub ustaw go na permit synchronize (new Long(42)) jest najlepsze dla monitorowania i tak dalej.
Minęło kolejne pół roku, pora na wdrożenie kolejnej wersji Javy™ na produkcji. Tym razem na pewno, bo to w końcu LTS. ;-) Zdaniem wielu “Java jest wolna”. Okazuje się, że rozwój Javy jest tak “wolny”, że kolejne wydania nie są tylko podbiciem wersji, bo mogą znacząco zmieniać reguły gry. To dobry powód na kolejny deep dive w Javie. Była mowa o: –illegal-access=deny, Sealed Classes, dopasowaniu wzorców w switch, z czym się żegnamy i z czym będziemy się żegnać, i innych.
Minęło kolejne pół roku, kolejne wydanie nowej wersji Javy™ za nami. Zdaniem wielu “Java jest wolna”. Okazuje się, że rozwój Javy jest tak “wolny”, że kolejne wydania nie są tylko podbiciem wersji, bo mogą znacząco zmieniać reguły gry. To dobry powód na kolejny deep dive w Javie. Będzie mowa o: Rekordach: gdzie i jak ich użyć (poza DTO/VO) dopasowaniu do wzorca z instanceof (zwane również smart casting) klasach zapieczętowanych (czyli nowym wymiarze widoczności typów) ostrzeżeniach z projektu Jigsaw (–illegal-access kontratakuje!
W dawnych mrocznych czasach musieliśmy czekać 3-4 lata, by zobaczyć nową wersję Javy ze zmianami w API, składni i JVM. Obecnie mamy dwa duże wydania każdego roku! Czy możemy korzystać z tych wydań przed pojawieniem się kolejnego LTSa? Chcesz wiedzieć, co się wydarzyło od czasu Javy 11? Rekordy? Wyrażenia switch? Pattern matching? Jakieś zmiany w NullPointerException? Nowe funkcje w API? O co chodzi z Shenandoah i ZGC? AppCDS, żeby przyspieszyć start?
Minęło kolejne pół roku, kolejne wydanie nowej wersji Javy™ za nami. Zdaniem wielu “Java jest wolna”. Okazuje się, że rozwój Javy jest tak “wolny”, że kolejne wydania nie są tylko podbiciem wersji, bo mogą znacząco zmieniać reguły gry. To dobry powód na kolejny deep dive w Javie. Będzie mowa o: ZGC i Shenandoah w gotowości produkcyjnej (jeśli kto nie lubi epok lodowcowych) dopasowaniu do wzorca z instanceof (zwane również smart casting) klasach zapieczętowanych (czyli nowym wymiarze widoczności typów) klasach ukrytych (tak bardzo, że same siebie nie widzą) blokach tekstowych, które pozwalają łatwo deklarować napisy bardziej skomplikowane od “Hello World!
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ę m.in. na AllTheTalks.online, CodeCamp Romania, JPoint.
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