JavaRush /Blog Java /Random-PL /Trendy Java w 2021 roku: Kotlin, architektura mikrousług ...

Trendy Java w 2021 roku: Kotlin, architektura mikrousług i Kubernetes

Opublikowano w grupie Random-PL
Świat rozwoju zmienia się bardzo szybko. Aby nadążać za zmianami, trzeba rozumieć, co dzieje się na tym świecie. Znajomość trendów pozwala dostosować się do szybko zmieniających się trendów. Sztuczna inteligencja, wzrost liczby integracji i Internet rzeczy to tylko część światowych trendów programistycznych. JavaRush zapytał specjalistę i wykładowcę programowania Java Andreya Rodionowa, co stanie się z Javą w 2021 roku.Trendy Java w 2021 roku: Kotlin, architektura mikroserwisów i Kubernetes - 1

W jakich obszarach Java jest nadal jedynym rozwiązaniem?

Java w najbliższej przyszłości pozostanie jedną z głównych platform do tworzenia aplikacji korporacyjnych ( czyli aplikacji korporacyjnych wykorzystywanych przez duże firmy do zarabiania pieniędzy. Aplikacje takie mają dużą bazę kodową i wysokie wymagania niezawodnościowe – przyp. red. ) oraz backendu. Java dobrze wpisuje się w architekturę mikroserwisów, choć nie jest jedyną alternatywą dla pisania mikroserwisów.

Jakie są perspektywy dla innych języków JVM, w szczególności Kotlina, w porównaniu z Javą?

Po szumie wokół języków Groovy i Scala, Kotlin jest obecnie wiodącym językiem JVM . Stało się już standardem w rozwoju Androida, ale w świecie przedsiębiorstw Java nie zdobyło jeszcze swojego miejsca. Wiele popularnych frameworków ( Spring , Vert.x , gRPC , RSocket ) również na nim polega, umożliwiając jego użycie wewnątrz siebie.

Kotlin to statycznie typowany, obiektowy język programowania, który działa na wirtualnej maszynie Java i jest rozwijany przez JetBrains. Kompiluje się również do JavaScript i kodu wykonywalnego na wielu platformach za pośrednictwem infrastruktury LLVM.

Funkcje Kotlina: kompiluje się do kodu bajtowego JVM lub JavaScript, open source, łatwa do odczytania składnia, programy Kotlin mogą korzystać z istniejących frameworków i bibliotek Java.

Czy nastąpi spadek jakości Java ze względu na krótsze odstępy między wydaniami?

Tak się nie stanie: po prostu innowacje w danym języku będą wydawane, gdy będą gotowe, zamiast czekać kilka lat na kolejną wersję, jak miało to miejsce wcześniej. Niektóre wydania pozostaną niezauważone przez programistów, ponieważ nie wprowadzą żadnych super popularnych innowacji.

Ramy wiosenne: czy będzie nadal rozwijać swój ekosystem, aby odpowiadał różnorodnym potrzebom?

Ekosystem Spring nadal aktywnie się rozwija, a ja co jakiś czas odkrywam kolejny z jego podprojektów, o którym nigdy wcześniej nie słyszałem. Warto również zauważyć, że Project Reactor i r2dbc, które pojawiły się jako podprojekty Springa, można obecnie powiedzieć, że stały się standardami podejścia reaktywnego.

Project Reactor to biblioteka Java 8, która implementuje reaktywny model programowania. Jest zbudowany na podstawie specyfikacji Reactive Streams, standardu tworzenia aplikacji reaktywnych.

R2DBC (Reactive Relational Database Connectivity) to projekt open source poświęcony programowaniu reaktywnemu dla języka SQL.

Jakie są trendy w rozwoju infrastruktur chmurowych IaaS, SaaS, PaaS? W jaki sposób chmura ułatwia rozwój, wdrażanie, konserwację i skalowanie infrastruktury?

Głównym trendem pozostaje tutaj Kubernetes i otaczająca go infrastruktura w postaci Service Mesh. Każdy szanujący się dostawca Cloud udostępnia możliwość wykorzystania klastra Kubernetes. A jeśli aplikacja jest napisana do działania na platformie Kubernetes, znacznie ułatwia jej wdrożenie i skalowanie.

Kubernetes (K8s) to oprogramowanie typu open source służące do automatyzacji wdrażania, skalowania i zarządzania aplikacjami kontenerowymi.

Kubernetes grupuje kontenery tworzące aplikację w jednostki logiczne, aby ułatwić zarządzanie i odkrywanie.

Kubernetes zarządza kontenerami i uruchamia je na dużej liczbie hostów, a także umożliwia kolokację i replikację dużej liczby kontenerów. Projekt został zapoczątkowany przez Google, a obecnie jest wspierany przez wiele firm, w tym Microsoft, RedHat, IBM i Docker.

Na jakie jeszcze trendy rozwojowe warto zwrócić uwagę w 2021 roku?

Jednym z ciekawych trendów, który wciąż rośnie, jest GraalVM Native Image, który pozwala zamienić tradycyjną aplikację Java w wersję binarną, która nie będzie wymagała do działania JVM i powiązanych bibliotek. Taki plik binarny bardzo dobrze wpisuje się w architekturę mikroserwisową i podejście bezserwerowe, gdyż pozwala bardzo szybko uruchomić nową instancję aplikacji i nie wymaga „rozgrzewania” JVM.

Czy wymagania wobec młodych programistów zmieniły się ostatnio w związku z rozwojem Javy?

Większość projektów nadal zawiera innowacje Java 8, nawet jeśli programiści używają nowszych wersji Java. Dlatego głównym wymaganiem jest znajomość Stream API i elementów programowania funkcjonalnego . Dobrze jest także znać architekturę mikroserwisów , Dockera i Kubernetesa , gdyż w nowoczesnym projekcie początkujący programista od razu będzie musiał sobie z tym poradzić.

Stream API to nowy sposób pracy ze strukturami danych w funkcjonalnym stylu. Stream API (opis sposobów, w jaki jeden program komputerowy może komunikować się z innym programem) jest w swej istocie strumieniem danych.

Wraz z pojawieniem się Java 8, Stream API umożliwiło programistom pisanie znacznie krócej tego, co wcześniej zajmowało wiele linii kodu, a mianowicie uproszczenie pracy ze zbiorami danych, w szczególności uproszczenie filtrowania, sortowania i innych operacji manipulacji danymi. Jeśli nie masz operacji pośrednich, możesz i powinieneś często obejść się bez strumienia, w przeciwnym razie kod będzie bardziej skomplikowany niż bez strumienia.

Docker to oprogramowanie do automatyzacji wdrażania i zarządzania aplikacjami w środowiskach kontenerowych.

Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION