A A+ A++

Jakie są kierunki rozwoju platformy Java i dlaczego warto nauczyć się programowania w tym języku? Na pytania Computerworld odpowiada guru Java, Markus Eisele, Head of Developer Tools Marketing w firmie Red Hat.

Jak długo specjalizuje się pan w programowaniu na platformie Java i dlaczego właśnie ten język programowania pan wybrał?

Programować zacząłem w 2000 roku, a więc w czasach gwałtownego rozwoju internetu określanego jako boom Dot Com. Pierwszym językiem wykorzystywanym przeze mnie był oparty na Javie język skryptowy ColdFusion. Tworzone aplikacje działały na serwerach Java i dość szybko przeszedłem na programowanie w Java, bo pracowałem w firmie ISV, która była pierwszą na rynku we wprowadzaniu aplikacji Java dla korporacji i firm. Można powiedzieć, że nie ja spotkałem Javę, a ona znalazła mnie.

Zobacz również:

Zacząłem od stanowiska programisty, później zostałem architektem odpowiedzialnym za projekty tworzenia korporacyjnych aplikacji. A ponieważ zawsze lubiłem się dzielić swoją wiedzą i wyjaśniać naturę rzeczy i systemów związanych z programowaniem więc ostatecznie wylądowałem na stanowisku dyrektora marketingu narzędzi dla deweloperów w firmie Red Hat.

Zawsze bardzo ceniłem Red Hat za otwarty stosunek do ludzi tworzących technologie. A na obecnym stanowisku mam nie tylko możliwości popularyzacji nowych narzędzi, ale również pewien wpływ na kierunki rozwoju technologii.

Jakie są zalety i zastosowania platformy Java?

Największą zaletą Java jest ogromna popularność. Praktycznie każdy student informatyki w trakcie nauki zyskuje przynajmniej podstawowe, ogólne informacje o programowaniu w Javie. Wynika to z tego, że system jest bardzo szeroko wykorzystywany w przedsiębiorstwach. Jest tak rozpowszechniony, że w praktyce trudno znaleźć firmę, która by w systemach back-end nie korzystała z Javy lub przynajmniej z modułów run-time i wirtualnych maszyn JVM.

Na przykład Twitter korzysta z JVM jako technologii będącej podstawą działania firmowych aplikacji.

Obecnie są też dostępne wersje Javy zoptymalizowane do pracy w kontenerach, które umożliwiają tworzenie szybko działających aplikacji o stosunkowo niewielkiej objętości.

Java ma długą historię, znajduje najróżniejsze zastosowania i praktycznie w każdej branży odgrywa ważną rolę.

Chyba jedynym wyjątkiem są aplikacje wykorzystujące nowe technologie sztucznej inteligencji i uczenia maszynowego, gdzie język Python jest najczęściej stosowany przez analityków danych. Warto tu jednak zauważyć, że nawet tu, systemy back-end dostarczające danych do analiz są bardzo często oparte na platformie Java.

Należy tu podkreślić, że język i narzędzia Javy są ciągle rozwijane i unowocześniane zgodnie ze zmieniającymi się wymaganiami użytkowników. Już wkrótce pojawi się kolejna wersja Java 20.

Markus Eisele, Head of Developer Tools Marketing w firmie Red Hat.

Wśród najpopularniejszych języków programowania niezależnie wymieniane są Javascript i Java. Czym się różnią?

Java i JavaScript mają ze sobą tyle wspólnego co na przykład car i carpet. Są to zupełnie różne języki o kompletnie różnych zastosowaniach.

Aplikacje JavaScript można znaleźć w wielu urządzeniach klienckich lub przeglądarkach. Język JavaScript jest względnie łatwy do nauczenia, ale mało przydatny w firmach i poważnych aplikacjach korporacyjnych. Takie jest moje zdanie, choć nie każdy musi się z nim zgadzać.

Kod aplikacji można pisać w dowolnym języku programowania, ale bardzo ważne jest by zapewnić odpowiednią jego jakość i bezpieczeństwo. Oprócz tego, przy dużej objętości kodu źródłowego trudno się obejść bez narzędzi umożliwiających automatyzację zarządzania projektem, badania jakości kodu i jego testowania.

Systematycznie rozwijana i ulepszana platforma Java spełnia takie wymagania i dlatego praktycznie we wszystkich zastosowaniach znajduje się wśród pięciu najpopularniejszych języków. W efekcie poświęcenie czasu na naukę Javy nigdy nie jest błędem, bo znający ten język programista zawsze znajdzie solidną pracę.

Jakie są obecnie główne kierunki rozwoju systemu Java?

Java odchodzi od tradycyjnego podejścia, w którym był to język serwerowy przeznaczony do sterowania procesami, dużymi procesami działającymi super szybko i przez długi (praktycznie nieskończony) czas co wymagało stosowania mechanizmów garbage collection i innych zapewniających stabilność i niezawodność długoterminowej pracy serwera.

Ponieważ coraz większą popularność zdobywają kontenery oraz mniejsze usługi, które mają inne wymagania. Choć duża szybkość i stabilność pracy są ważne, ale często aplikacje nie muszą działać tak długo, jak klasyczne.

Dlatego też Java została przystosowana do efektywnej pracy w kontenerach oraz spełnienia wymagań programistów tworzących natywne aplikacje chmurowe.

Jak wynika ze statystyk, liczba ofert pracy dla programistów Java nieco rośnie, a w przypadku innych platform, na przykład Python nieznacznie spada. Z czego to wynika?

Nie znam dokładnie tych liczb, ale mogę się podzielić moją prywatną opinią na ten temat. Moim zdaniem nauka Javy to solidna inwestycja. Jeśli programista szuka pracy i chce dobrze zarabiać to Java mu to zapewni.

Wynika to między innymi z tego, że długa historia tej platformy spowodowała, że na rynku jest bardzo dużo stworzonych 5-10 lat temu aplikacji Java, które trzeba utrzymywać. Niektórzy mówią, że są to aplikacje przestarzałe, ale jeśli w dalszym ciągu spełniają wymagania użytkownika to z biznesowego punktu widzenia warto je utrzymywać oraz rozwijać. Bo czy warto inwestować, często duże pieniądze, w przepisanie kodu od podstaw?

Oprócz tego warto zauważyć, że choć popularność zyskują nowe technologie takie jak AI i ML, to nie wszystko można efektywnie zbudować przy pomocy języka takiego jak Python. Sztuczna inteligencja i uczenie maszynowe wykorzystują modele analityczne do których stworzenia trzeba szybko i efektywnie dostarczać ogromnych ilości danych i tu jest miejsce dla serwerów wykorzystujących Javę.

Oczywiście Java nie jest w stanie w stu procentach spełnić wszystkich wymagań, ale platforma ta cały czas jest rozwijana i wciąż pojawiają się nowe możliwości.

Obecnie programiści mają dużo większe niż kiedyś możliwości wyboru języka i narzędzi, które są najlepiej dopasowane do stojących przed nimi zadań.

Na przykład, gdy popularność zaczęły zdobywać systemy Edge Computing oraz kontenery, to jednym z kierunków rozwoju platformy Java stało się opracowanie wersji narzędzi umożliwiających tworzenie kodu o małej objętości przystosowanego do efektywnej pracy w takich środowiskach.

Ostatnio coraz częściej pojawiają się narzędzia low-code lub no-code. Czy ma to jakieś odniesienie i wpływ na rozwój platformy Java?

Coraz częściej słyszę takie pytania. Sądzę, że nie ma to wielkiego wpływu na rozwój platformy Java i modułów Java run-time. Low-code i no-code są systemami funkcjonującymi na wyższym poziomie.

Choć platforma Java oferuje już narzędzia, które wspierają funkcje low-code, ale w ogólności idea programowania bez kodowania nie ma bezpośredniego wpływu na rozwój języka i platformy Java.

Czy sądzi Pan, że automatyzacja procesów programowania może zmienić obraz rynku i zasadniczo zmniejszyć obecny niedobór specjalistów?

Automatyzacja jako taka jest dla mnie po prostu częścią dążenia do zwiększenia produktywności. Pamiętam, gdy byłem programistą to bardzo dużo czasu, nawet tydzień zajmowało uzgadnianie na przykład struktury katalogów zanim aplikacja mogła zostać przekazana do działów operacyjnych. Teraz nie ma szansy na tak długie procesy i narzędzi do automatyzacji jest coraz więcej.

Ale jeśli chodzi o tworzenie kodu źródłowego to nie sądzę by w bliskiej przyszłości wykorzystanie sztucznej inteligencji i mechanizmów automatyzujących tworzenie kodu mogło zastąpić wykwalifikowanych programistów. Na przykład oprogramowanie CoPilot może być źródłem inspiracji, ale nie sądzę by mogło być podstawa do tworzenia naprawdę efektywnych aplikacji biznesowych.

Bo pisanie kodu to tak, jak pisanie książki. Każdy może ją napisać, ale żeby opowiedzieć jakąś historię trzeba przyciągnąć i utrzymać uwagę czytelnika, a to już jest sztuką.

Podobnie jest w przypadku kodu. Łatwo jest napisać jakiś kod w Javie, ale trudniej spełnić wymagania konkretnego użytkownika, zapewnić niezawodność i odpowiednio dużą szybkość działania aplikacji. Nie sądzę by sztuczna inteligencja mogła to zapewnić w najbliższej przyszłości.

Oryginalne źródło: ZOBACZ
0
Udostępnij na fb
Udostępnij na twitter
Udostępnij na WhatsApp

Oryginalne źródło ZOBACZ

Subskrybuj
Powiadom o

Dodaj kanał RSS

Musisz być zalogowanym aby zaproponować nowy kanal RSS

Dodaj kanał RSS
0 komentarzy
Informacje zwrotne w treści
Wyświetl wszystkie komentarze
Poprzedni artykułAmbientowo-filmowy projekt płytowy Tomasza Mereńcy
Następny artykułObwieszczenie o wydaniu decyzji o ustaleniu lokalizacji inwestycji celu publicznego polegającego na przebudowie, rozbudowie sieci elektroenergetycznej nN 0,4 kV na dz. nr ewid. 173/1, 139/1, 197/1, 199/4, 177/2, 177/3, 177/4, 177/5, 177/6, 177/7 w obrębie Opiesin, gm. Zduńska Wola.