CodeGym/Blog Java/Poland/Projekt Loom, Kontenery i Jakarta EE: Jakie są trendy Jav...
Lucy Oleschuk
Poziom 31

Projekt Loom, Kontenery i Jakarta EE: Jakie są trendy Java w 2023 roku?

Opublikowano w grupie Poland
Rozmawialiśmy już o tym, co stało się z Javą w 2022 roku i czego można się spodziewać w 2023 roku. W tym artykule postaramy się wejść w temat nieco głębiej i opowiemy o ekosystemie Java oraz prognozach na najbliższą przyszłość. Skupimy się na dodatkowych narzędziach i ulepszeniach, które zwiększają produktywność, stabilność, bezpieczeństwo i wydajność Javy. Projekt Loom, Kontenery i Jakarta EE: Jakie są trendy Java w 2023 roku? - 1

Projekt Loom i wątki wirtualne

Chcielibyśmy zacząć od długo oczekiwanych Wątków Wirtualnych (JEP 425) utworzonych w Projekcie Loom, które wreszcie pojawiły się w 2022 roku w wersji Java 19, obsługują one ograniczenia w tradycyjnym modelu współbieżności. Chociaż są one dostępne tylko w trybie podglądu, wierzymy, że zmieni się to wraz z następną wersją w 2023 roku. Czym jest Projekt Loom? Jest to nowy projekt firmy Oracle, którego głównym celem jest znaczne zmniejszenie nakładu pracy związanej z pisaniem, utrzymywaniem i obserwowaniem aplikacji współbieżnych o dużej przepustowości. Innymi słowy, Projekt Loom ma na celu wspieranie i rozwijanie wysokowydajnego, lekkiego modelu współbieżności w Javie, ponieważ tradycyjne wątki systemu operacyjnego (będące rdzeniem modelu współbieżności Javy) mają pewne wady i są dość kosztowne obliczeniowo. Wątki wirtualne to znacznie lżejsze wątki, które nie są połączone z wątkami systemu operacyjnego (zarządza nimi JVM). Oznacza to, że wątki wirtualne są idealne do programowania "wątek na żądanie" i mogą tworzyć mnóstwo wirtualnych wątków bez zmniejszania przepustowości. Dzięki temu widzimy, że wątki wirtualne wprowadzone w Javie 19 są dość łatwe w użyciu. Umożliwiają programistom szybkie diagnozowanie problemów, debugowanie i profilowanie aplikacji współbieżnych za pomocą istniejących narzędzi i technik JDK. Jak twierdzą eksperci, wprowadzenie Projektu Loom i Wątków Wirtualnych to prawdopodobnie jedno z najważniejszych wydarzeń w historii Javy i możemy obserwować obecnie dużą ekscytację tym tematem. Wielu programistów nie może się już doczekać przejścia Wątków Wirtualnych z etapu "podglądu" do "składnik Java 21 LTS" (to wydanie spodziewane jest we wrześniu 2023). Przewidujemy, że stosowanie wątków wirtualnych będzie rozwijane we frameworkach i znacznie ułatwi programistom Java pisanie skalowalnego oprogramowania wymagającego milionów jednoczesnych połączeń. Brzmi super, prawda?

Jakarta EE

Jakarta EE to po prostu nowa nazwa Java EE (Java Enterprise Edition), która była przede wszystkim platformą do tworzenia oprogramowania biznesowego o znaczeniu krytycznym. Chociaż platforma otrzymała nową nazwę po przejściu projektu pod kontrolę Eclipse Foundation, nie zmieniło to istoty platformy. Jakarta EE sprawdza się, gdy budujesz duże aplikacje korporacyjne, która powinny być skalowalne, bezpieczne i obsługiwać mnóstwo informacji. Jakarta EE składa się z zestawu komponentów oprogramowania, interfejsów API, do tworzenia aplikacji Java klasy enterprise. Komponenty te są często określane jako "specyfikacje Jakarta EE", które rozszerzają wersje Java SE (standard editions, edycje standardowe). Specyfikacje te pomagają programistom, ponieważ zwalniają ich z konieczności samodzielnego kodowania wszystkich elementów. W rezultacie programiści mogą skupić się na logice biznesowej aplikacji, a nie na drobnych, infrastrukturalnych zadaniach. I chodzi tu nie tylko o oszczędność czasu i wysiłku. Chodzi również o stworzenie bardziej wydajnego systemu dla użytkowników. Co wydarzyło się w Jakarta EE w 2022 roku? Nowa wersja Jakarta EE 10 została udostępniona społeczności Java 22 września. Ta wersja może pochwalić się aktualizacjami 24 specyfikacji (12 specyfikacji z głównymi aktualizacjami i 12 specyfikacji z mniejszymi aktualizacjami) oraz nowym Core Profile. Core Profile 10 niewątpliwie zmienia reguły gry, ponieważ teraz kładzie nacisk na mikroserwisy i środowiska chmurowe. Niektóre dodatkowe zmiany dotyczyły komponentu EJB Entity Beans i wbudowanego kontenera EJB, które zostały usunięte z wymagań TCK. Chociaż są one nadal dostępne w ramach TCK, ich implementacja nie jest już wymagana do zapewnienia zgodności platformy. Jeśli chodzi o oczekiwania odnośnie Jakarta EE w 2023 roku, wierzymy, że stanie się ona podstawowym frameworkiem, umożliwiającym łatwe ulepszenie aplikacji biznesowych. Stanie się idealnym rozwiązaniem dla projektów obejmujących mikroserwisy i monolity. Należy jednak pamiętać, że do korzystania z frameworków takich jak Spring Boot 3 lub serwerów aplikacji zgodnych z Jakarta EE 10, konieczne będzie użycie Vaadin 24, którego premiera planowana jest na marzec 2023.

Kontenery

Podczas konteneryzacji aplikacji Java należy zazwyczaj najpierw rozważyć, ile dostępnego czasu procesora będzie miał kontener. Następnie należy zaplanować, ile pamięci będzie dostępne (zarówno całkowita ilość pamięci, jak i rozmiar JVM, Java Virtual Machine). W środowiskach skonteneryzowanych aplikacje mogą mieć dostęp do wszystkich procesorów, a tym samym uruchamiać wiele wątków jednocześnie. Obecnie konteneryzacja aplikacji Java wciąż zyskuje na popularności i nie wydaje się, aby ta tendencja miała się zmienić w najbliższym czasie. A ponieważ coraz więcej zadań Java jest uruchamianych w kontenerach, możemy zaobserwować przejście od samego mówienia o tym, "jak" konteneryzować aplikację Java, do "jak najlepiej" ją konteneryzować. Widzimy też więcej informacji i wskazówek dotyczących najlepszych praktyk dotyczących uruchamiania aplikacji w kontenerze. Na przykład może zainteresuje Cię nowy artykuł Microsoftu z zaleceniami dotyczącymi alokacji i odśmiecania pamięci. Projekt Loom, Kontenery i Jakarta EE: Jakie są trendy Java w 2023 roku? - 2

Projekt Leyden

Uwzględniając opisane powyżej projekty, przewidujemy wzrost zainteresowania Native Java, ponieważ Projekt Leyden został ostatecznie wskrzeszony w maju 2022. Jeśli nie wiesz czym jest Projekt Leyden, warto wspomnieć, że głównym celem tego projektu jest poprawa długoterminowych bolączek Javy — długiego czasu uruchamiania, powolnego osiągania szczytowej wydajności i dużego rozmiaru aplikacji Java. Jak można to rozwiązać? Dzięki integracji statycznych obrazów środowiska wykonawczego z platformą Java i pakietem JDK. Przez statyczne obrazy rozumiemy samodzielne programy, wywodzące się z aplikacji i JDK, który uruchamia tę aplikację. Obraz statyczny jest w rzeczywistości "zamkniętym światem" pod względem klas, które może załadować (nie ładuje klas spoza obrazu, ani nie tworzy klas dynamicznie). Należy jednak zauważyć, że projekt Leyden nie ma na celu poprawy ogólnej wydajności aplikacji Java. Po prostu naprawia część uruchomieniową i opiera się na innym projekcie — GraalVM, który jest stale usprawniany i staje się coraz bardziej popularny. Ponadto zaczyna obsługiwać coraz więcej zastosowań, takich jak aplikacje Spring.

Podsumowując

Połączenie prostoty, bezpieczeństwa i solidności jest jednym z głównych powodów, dla których Java utrzymuje wiodącą pozycję wśród technologii. Oczekuje się, że rok 2023 stanie się rokiem rozwoju Wątków Wirtualnych (w JDK 20 planowanym na marzec) w celu dalszego promowania lekkich konstrukcji współbieżnych w Javie. W wątkach wirtualnych główny nacisk będzie skierowany na możliwości lepszego skalowania; w thread API nastąpi wdrożenie wątków wirtualnych; oraz uproszczone zostanie diagnozowanie problemów, debugowanie i profilowanie. Przewiduje się również, że część kodu Java GraalVM Community Edition zostanie przeniesiona do OpenJDK w celu powiązania rozwoju technologii GraalVM i Java. Oracle ogłosiło już, że społecznościowe edycje kompilatorów GraalVM JIT i AOT zostaną przeniesione do OpenJDK w 2023 roku. Jak widać, zmiany w ekosystemie Javy są znaczące i pokazują, w jakim kierunku rozwija się branża. A co Ty sądzisz o trendach w Javie? Czego można oczekiwać w roku 2023?
Komentarze
  • Popularne
  • Najnowsze
  • Najstarsze
Musisz się zalogować, aby dodać komentarz
Ta strona nie ma jeszcze żadnych komentarzy