Wybór języka

Preview Feature

Wykład odbył się jak na razie tylko raz i tylko dla Silesia JUG w Katowicach, po angielsku. Chętnych na wersję polską zapraszam do kontaktu:

Let’s talk about Java 21 and have a sneak-peek into Java 22, and things like: Java was supposed “to be slow”. However, Java turns out to evolve so fast, that next releases aren’t just version bumps, but might significantly change the rules of the game. That’s a good reason to check out what’s new in Java. To name a few changes:

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:

  • Virtual Threads,
  • Pattern Matching for switch,
  • Record Patterns,
  • Structured Concurrency,
  • String Templates,
  • korzystaniu z rzeczy natywnych,
  • co wyleciało i wyleci,
  • i innych.

Dużo rzeczy pokazane w kodzie, nie tylko na slajdach.

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,
  • korzystanie z rzeczy natywnych,
  • co wyleciało i wyleci,
  • i innych.

Dużo rzeczy pokazane w kodzie, nie tylko na slajdach.

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.

Dużo rzeczy pokazane w kodzie, nie tylko na slajdach.

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.

Dużo rzeczy pokazane w kodzie, nie tylko na slajdach.

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!)
  • i Valhalla (przy złym wykorzystaniu value-based classes)
  • komunikacji z pamięcią natywną z projektu Panama
  • i innych.

Dużo rzeczy pokazane w kodzie, nie tylko na slajdach.

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!”
  • Rekordach: gdzie i jak ich użyć (poza DTO/VO)
  • Helpful NPE messages, które czynią ściganie nulli łatwiejszym

Oczywiście, będzie także o rzeczach przestarzałych i usuniętych (nara Nashorn!) Wszystko to pokazane w kodziku, nie tylko na slajdach.

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ą?

\