przyszłość java

Przyszłość Javy oczami programistów Sparteza

Jaka będzie przyszłość Javy? W jakim kierunku język powinien zmierzać, by nie odszedł w zapomnienie? A może jest coś, co sprawi, że zawsze będzie to popularny język programowania? Te pytania zadaliśmy programistom Sparteza, których poprosiliśmy o wolną wypowiedź na temat przyszłości Javy.

Wojciech Stolarz. Senior Software Engineer w Spartez. Zaczynając od Java 1.4, ma ponad 8 lat doświadczenia jako programista front/back-end. Pracował w domenie telekomunikacyjnej wymagającej wysokiej niezawodności. Ostatnio Inżynier Niezawodności (SRE) w Jira Cloud.

– Java zaczynała jako język do podstawek TV a potem dzięki applet-om jako język Internetu. Szybko jednak znalazła swój stały dom jako język backend-owy dla dużych systemów biznesowych. Dziś obok Androida, jest to jeden z jej głównych bastionów. Jednak dziś JVM to już nie tylko Java, ale także Kotlin, Scala, Clojure itd. Każdy z tych języków zyskuje swoją niszę kosztem Javy.

Dla mnie przyszłość to mikroserwisy w chmurze, Internet Rzeczy, Big Data oraz sztuczna inteligencja. W większości wymienionych przypadków Java nie jest pierwszym wyborem. Jeszcze przez długi czas natomiast będzie liderem w systemach klasy enterprise. A jeżeli nie sama, to przynajmniej jako jeden z języków JVM. Prawdopodobnie zostanie COBOL-em XXI wieku. 

Łukasz Gosiewski. Software Engineer w Spartez. Ambitny z natury, perfekcjonista, jeśli chodzi o kod. Aktywnie poszukuje rzeczy potrzebujących naprawy lub usprawnienia. Uwielbia uczyć się i rozwijać nowe umiejętności, nienawidzi zasad „wykutych w kamieniu”. Woli logiczne myślenie i decyzje oparte na danych od tych kierowanych intuicją.

Przyszłość Javy jest już prawdopodobnie przesądzona. Uważam, że język padnie ofiarą własnego sukcesu. Stał się zbyt duży i jest używany na taką skalę, że utrudnia to jego aktualizacje i uniemożliwia wszelkie ryzykowne eksperymenty w tym zakresie. Przez to jest już zdecydowanie w tyle w stosunku do mniejszych (w sensie społeczności i popularności) i bardziej zwinnych języków. Powoli, stopniowo, Java będzie traciła pozycję lidera na rzecz innych języków, co nie jest zjawiskiem nowym w świecie IT.

To co wyróżnia Javę to skala. Jest używana powszechnie, w bardzo wielu miejscach. Przez to jej wędrówka w kierunku emerytury będzie trwała dłużej, a prawdopodobnie ostatni etap życia znacznie jej się wydłuży przez konieczność utrzymywania wszystkich napisanych aplikacji. Nie wróżyłbym natomiast, że proces ten gwałtownie przyspieszy lub nawet zakończy się w ciągu najbliższych kilku, kilkunastu lat. Moim zdaniem, będzie się to działo bardzo powoli i rozciągnie się na dekady.

Podsumowując, chociaż widzimy już pierwsze symptomy starości (coraz mniej nowych systemów pisanych w Javie, mało usprawnień w języku), to do końca jeszcze bardzo daleko i raczej nie czeka nas wielka rewolucja. 

Maciej Przepióra. Senior Software Developer w Spartez. Pisanie programów komputerowych było jego pasją od najmłodszych lat, więc po ukończeniu studiów w ramach Międzywydziałowych Indywidualnych Studiów Matematyczno-Przyrodniczych na Uniwersytecie Warszawskim, IT było oczywistym wyborem jeśli chodzi o karierę. Od ponad 10 lat tworzy aplikacje internetowe w Java i JavaScript dla firm na całym świecie. Swoim doświadczeniem dzielił się jako mówca m.in. podczas Devoxx.PL, JDD i Confitura.

– Pogłoski o śmierci Javy są, moim zdaniem, mocno przesadzone. Wirtualna maszyna to dojrzałe, dopracowane i dobrze znane środowisko, które nieustannie jest rozwijane. Choć platforma ta ma wielu konkurentów takich jak NodeJS, Go, czy ostatnio Rust jestem spokojny o jej przyszłość. Największym wyzwaniem w tym momencie jest chmura i wydaje się, że Java ma na nie odpowiedzi – są nimi GraalVM, nowe odśmiecacze pamięci, czy też nowa implementacja wątków (projekt Loom). W połączeniu z dużą dostępnością doświadczonych programistów i najlepszymi narzędziami deweloperskimi na rynku, Java wciąż ma przed sobą świetlaną przyszłość

Piotr Suwała. Java Software Engineer w Spartez. Programista od dziecka. Przebył całą drogę, od mikrokontrolerów, sterowników, poprzez modelowanie obiektowe, aż do świętego paradygmatu funkcyjnego. Udziela się w gdańskich organizacjach takich jak fablab, hackerspace… Na co dzień, jako deweloper w firmie Spartez, kieruje się wiarą w jakość i stawia na komunikację w zespole.

Java wiele traci na ubogacaniu swojej logiki warstwami refleksji i proxy. To powoduje, że trudno zrozumieć jak działają pod jej maską frameworki takie jak Hibernate czy Spring. Według mnie ta trudność powoduje, że języki takie jak Python, czy Typescript, będą powoli przejmować rynek, który tak dzielnie Java trzymała w swoich rękach. W wymienionych językach osobie o wiele prościej jest zrozumieć narzędzie, którego używa, co przekłada się na większą dostępność programistów i potencjalnie lepszą jakość produkowanego kodu.

Marek Tokarski. Java Developer w Spartez. Lubi rozkładać problemy na czynniki pierwsze. W ramach rozrywki sprawdził jak wygląda binarna reprezentacja obiektów w OpenJDK i opisał poszczególne elementy nagłówka obiektu.

– Java wciąż znajduje się w czołówce najpopularniejszych języków programowania. Ta popularność połączona z rozbudowanym i dojrzałym ekosystemem są czynnikami, dzięki którym ten stan rzeczy z pewnością utrzyma się w ciągu kilku najbliższych lat. W dłuższej perspektywie może się zdarzyć, że znajdą się inne języki, lepiej dopasowane do nowej rzeczywistości.

Java jednak nie jest bezbronna – obecny system wypuszczania nowych wersji co pół roku pozwala na szybsze dostarczanie nowych funkcjonalności. Projekty wprowadzające “data classes”, “sealed classes” czy “pattern matching” mogą znacząco zmienić sposób pisania kodu i tym samym odświeżyć postrzeganie Javy w środowisku.

Jan Majkutewicz. Java Developer, który pracę w Spartezie zaczął jeszcze w trakcie studiów i już tu został. Pasjonat nowoczesnych technologii, który który lubi wiedzieć jak te technologie działają od wewnątrz. Jego hobby to żeglarstwo, science-fiction i sztuczna inteligencja.

Najbliższe wydania Javy przyniosą wiele mniejszych usprawnień, takich jak wielowierszowe ciągi tekstowe (text blocks) czy uproszczona składnia instanceof, która pozwoli na łatwe przypisanie rzutowanego obiektu do zmiennej (Pattern Matching for instanceof). Istotną zmianą będą też klasy rekordów, które będą pozwalały na łatwe przechowywanie niemutowalnych danych. W dłuższej perspektywie warto obserwować projekty takie jak Loom i Valhalla.

Celem tego pierwszego jest poprawa programowania asynchronicznego, poprzez stworzenie lekkiego i wysokowydajnego modelu programowania współbieżnego oraz dodanie m.in. wirtualnych wątków. Projekt Valhalla ma na celu natomiast wprowadzenie nowego, spłaszczonego typu danych, który pozwoli lepiej wykorzystać możliwości współczesnego sprzętu, a w szczególności pamięci podręcznej procesorów. Projekty te mogą okazać się w przyszłości przełomowymi zmianami w Javie.

Artur Faruga. Senior Software Engineer at Spartez. Programista z 8 lat doświadczenia. Zaczynał w startupie we Wrocławiu, a następnie w Krakowie: IBM, Luxoft i IG. Od niecałego roku jest szczęśliwym mieszkańcem Gdańska oraz starszym programistą w Spartez.

– Czy Java będzie jak dobre wino? Im starsza tym doskonalsza? Chyba każdy się zgodzi, że sam język swoją zwięzłością i czytelnością nie grzeszy. Natomiast idealnie wpisuje się w wieloletnie, dojrzałe projekty używane przez rzesze klientów, gdzie rotacje programistów, architektów czy produkt managerów to chleb powszedni, a dług technologiczny i brak dokumentacji nie dziwi nikogo. Właśnie tam Java wraz z jej rozwlekłą składnią, ogromnym zapleczem ekosystemu, community oraz ciągle rozwijanymi frameworkami, bibliotekami daje wszystko to, co potrzeba aby rozwiązywać skomplikowane problemy. Przyjemne naprzemienne łączenie Javy z Kotlinem, jej młodszym bratem, jest niczym wisienka na torcie i sprawia, że skrzynka narzędziowa Javy jest i będzie kompletna jak żadna inna, a w jej sercu jest JVM, która łączy starsze i młodsze pokolenia.

Java to teraźniejszość i przyszłość, a stojący za nią ludzie budują i rozwijają narzędzia wokół niej, co jest niezbędne w szybkiej ewolucji oprogramowania.

przyszłość java

Paweł Cegła. Software Engineer w Spartez. Programista Java z 15-letnim doświadczeniem oraz 5-letnim epizodem ze Scalą.

– Przyszłość Javy w mojej opinii jawi się w jak najjaśniejszych barwach. Chodzi mi zarówno o sam język jak i maszynę wirtualną, proces tworzenia a także cały olbrzymi ekosystem programów, narzędzi, bibliotek i frameworków. Dostajemy nowe wersje co pół roku z mnóstwem nowych rzeczy, także w samym języku. Możemy przetestować zapowiedzi nowych rozwiązań jak np. pattern matching i rekordy w JDK 14. Standard Java EE został przekazany fundacji Eclipse i rozwijany jest jako Jakarta EE w otwarty sposób. Zupełnie nie zgadzam się ze stwierdzeniem „Java is dead”. Long live Java!

Tomasz Patrzykąt. Senior Site Reliability Engineer w Spartez. Obecnie SRE, wcześniej Software Engineer z wieloletnim doświadczeniem, głównie w świecie Javy. Dostarczył i wdrożył wiele rozwiązań dla klientów na całym świecie. Ukierunkowany na rozwiązywanie problemów, zawsze myślący o produkcyjnym zastosowaniu i adekwatnej skali.

– Java w ostatnich latach stara się być bardziej cloud friendly, chociażby poprzez modularyzację czy częstsze releasy. Moim zdaniem Java dalej będzie popularna przy tworzeniu rozwiązań dla problemów klasy enterprise ze względu na swoją dojrzałość, popularność oraz dostępność. Jeżeli chodzi o Web Development, to Java ma tutaj silne fundamenty oraz wsparcie frameworków i społeczności (Spring, Micronaut, Quarkus), aczkolwiek konkurenci, chociażby w postaci NodeJs, również naciskają. 

Na urządzeniach z Androidem, Java przegrywa z Kotlinem, coraz popularniejszy staje się ReactNative, tak więc w tym segmencie przewiduję odejście od Javy na rzecz innych technologii. 

Wyzwanie jakie stoi przed ekosystemem Javy to dostosowanie się do architektury serverless, ponieważ na tym polu przegrywa chociażby przez czas potrzebny na tzw. cold start. Na pewno Javę czeka kilka bitew, od wyniku których zależy jej przyszłość, niemniej jednak dalej będzie ona popularną i powszechnie używaną technologią.

przyszłość Java

Marcin Waleriańczyk. Java Developer w Spartez. Java Developer w Spartezie. Trochę Geek, w wolnych chwilach (gdy dzieci są zajęte lub juz śpią) siatkówka, gry planszowe oraz CS:GO.

Mamy rok 2030, Wyrocznia S.A. przez ostatnie 10 lat coraz bardziej inwestowała w rozwój języka Java. Community nie nadąża nad implementacją wszystkich JSR. W wyniku czego powstały już osobne języki programowania. Ze względu na wysoką cenę liczba adeptów Javy spada, zaczyna to być powoli niszowy język programowania. 

Rok 2050, ogłoszenie o pracę: “Szukam programisty Javy”. Młody programista widząc te ogłoszenie postanawia zapytać się najstarszego stażem inżyniera w firmie czy słyszał o czymś takim: “Java?… Tak, pamiętam to, były też inne języki jak COBOL, nie zawracaj sobie tym głowy lepiej młody”. 

Artur Pawelczyk. Od wczesnych lat życia miał niepohamowaną chęć zrozumienia działania komputera. Pierwsze programy zaczął pisać w szkole podstawowej, po samodzielnym przejściu przez kurs Pascala. Jego pasja przerodziła się w karierę zawodową w 2013 roku.

– Znamy plany tylko na najbliższe wersje Javy, a dalekiej przyszłości już nie przewidzimy. Czy pojawi się następny garbage collector? Jakie pomysły z innych języków zobaczymy? Jak wiele przestarzałych klas zniknie? Tylko jedno jest pewne: przyszłe pokolenia będą stykać się, nawet jeśli niechętnie, z tą technologią. Ważne, aby zapamiętali nas – programistów Javy – z najlepszej strony.


Zdjęcie główne artykułu pochodzi z unsplash.com.

Zapraszamy do dyskusji

Patronujemy

 
 
More Stories
Piranha – nowe narzędzie od programistów Ubera. Śniadanie z Programowaniem #41