Sytuacja kobiet w IT w 2024 roku
8.12.20204 min
GFT Poland

GFT Poland

Ćwierć wieku Javy. Czy JVM jest nadal sexy?

Zobacz, jak Java zmienia się na przestrzeni lat, dlaczego nie dała się wyprzedzić językowi C#, jakie trudności sprawia początkującym programistom oraz jakie książki o Javie warto przeczytać na początku nauki.

Ćwierć wieku Javy. Czy JVM jest nadal sexy?

Poniższy artykuł to zapis rozmowy między Marcinem Kowalskim a Arkiem Gasińskim, którzy zajmują się m.in. rekrutacją do firmy GFT. Dyskutowali oni o Javie, jej przyszłości oraz o tym, co sprawia, że jest ona nadal atrakcyjną technologią, pomimo swojego wieku. 


Marcin Kowalski:
Java obchodziła na wiosnę 2020 roku swoje 25-lecie. W świecie technologii IT jest to już bardzo sędziwy wiek, dlatego warto zadać następujące pytanie: czy Java jest nadal atrakcyjną technologią? Jaką przeszła drogę od początku i jak wygląda teraz?

Arek Gasiński: Wersja beta Javy miała swoją premierę w 1995. Trzy lata zajęło jej to, aby stać się trzecim najbardziej popularnym językiem programowania na świecie, według indeksu TIOBE. Wynikało to zdecydowanie ze świeżości rozwiązań oraz z pewnych elementów, które Java wniosła jako pierwsza, np. garbage collection, czy exception handling. 

Duże znaczenie miała też tutaj pewna fundamentalna cecha Javy, która została opisana przez Sun (firmę, w której Java powstawała) następującym sloganem: write once, run everywhere. Cecha ta wprowadziła dodatkową warstwę abstrakcji i nie trzeba było kompilować już na kilka architektur oddzielnie. To jest chyba największa zaleta i coś, co sprawiło, że Java stała się tak bardzo popularnym językiem programowania. Co więcej, Javie cały czas udaje się działać zgodnie z powyższą zasadą - mamy teraz wersje tego języka na wszystkie popularne architektury.

Wydaje mi się również, że Java jest nadal prostym językiem. Sam James Gosling, czyli twórca Javy, postrzegał ją jako blue collar language, co w wolnym tłumaczeniu można określić jako “język dla zwykłych ludzi”. Java miała być językiem prostym i zrozumiałym - bez żadnych skomplikowanych, czy spektakularnych funkcji. Technologia ta miała po prostu służyć skutecznemu wykonywaniu zadań. 

Być może prostota Javy też wpłynęła na to, że język ten zrobił się aż tak bardzo powszechny. Najbardziej skomplikowanym aspektem Javy jest chyba generics, który naprawdę potrafi dać w kość. Niemniej jednak jest to rzecz bardzo potrzebna. 

Java jako platforma ustanowiła też fundament, który pozwala innym językom nakierować się na JVM. To pozwala jej na obserwowanie, co implementują inne języki i gdy zostanie stworzona gdzieś jakaś fajna funkcja, to Java stara się ją wdrożyć u siebie. Przykładem jest tutaj wyrażenie switch.

Warto też wspomnieć o Project Loom, który może sprawić, że Java stanie się naprawdę atrakcyjnym językiem programowania. Ma on wywrócić do góry nogami to, w jaki sposób pracuje się nad współbieżnością w Javie. Project Loom może być już w pełni dowieziony w jednej z kolejnych wersji tego języka.

Ogólnie współbieżność w Javie jest raczej ciężką sprawą - miejmy nadzieję, że Project Loom to trochę uprości. 

Z mniej atrakcyjnych rzeczy, to aplikacje napisane w Javie mogą być dosyć trudne do utrzymania, ale ostatecznie i tak wszystko zależy od dogadania się zespołu programistów z zespołem adminów. 

Java ma też już niestety swoje lata i niektóre wybory projektowe mogą tutaj ciążyć i uniemożliwiać wprowadzanie aktualizacji. Przy tej okazji warto wspomnieć, że powiewem świeżości jest tutaj Kotlin, w którym obecnie programuję od dwóch lat.


Marcin Kowalski:
Przejdźmy na chwilę do języka C#. Kiedyś wydawało się, że rozwija się on o wiele szybciej od Javy, a w gruncie rzeczy jest teraz od niej mniej popularny. Co o tym myślisz?

Arek Gasiński: Być może wynika to z tego, że pierwsze wersje C# były jednak targetowae wyłącznie na platformy Microsoftu. Ja np. większość aplikacji enterprise’owych robiłem na systemach uniksowych. 

Niemniej jednak w C# dzieje się wiele dobrego. Brian Goetz, czyli architekt językowy Javy, przeprowadzał kiedyś prezentację i jej częścią był opis tego, jak spędza dzień - duża część dnia została przypisana “kradzieży funkcji z C#”. Świadczy to zdecydowanie o tym, że C# jest dosyć atrakcyjną technologią. 


Marcin Kowalski:
Kiedyś Java była mocno zamkniętym ekosystemem. Czy to się w jakiś sposób teraz zmieniło?

Arek Gasiński: W Javie 16, która pojawi się za około pół roku, będzie sporo zmian, które sprawią, że całe środowisko będzie o wiele bardziej przystępne. Przede wszystkim należy tutaj wspomnieć o tym, że JDK zostanie zmigrowane na GitHuba, więc projekty, nad którymi pracowano, będą teraz ogólnie dostępne. 

Open JDK było już wcześniej migrowane na tę platformę, aby sprawdzić, jak wszystko będzie działać, a ponieważ wszystko działa dobrze, to podjęto decyzję o pełnej migracji. 


Marcin Kowalski:
Co sprawia kandydatom podczas rekrutacji największą trudność, jeżeli chodzi o Javę?

Arek Gasiński: Sporo kandydatów ma niestety problemy z programowaniem funkcyjnym. Jest to dosyć istotne, ponieważ znajomość tego aspektu programowania pozwala łatwiej odnaleźć się w innych językach. A czasem jest możliwe, że bazowy język może się zmienić. W GFT programujemy w końcu nie tylko w Javie, ale również w Kotlinie. 


Marcin Kowalski:
Czy jest jakaś lektura, którą chciałbyś, żeby Twoi kandydaci przeczytali przed przyjściem na rozmowę kwalifikacyjną?

Arek Gasiński: Przez długi czas obowiązkową pozycją jeśli chodzi o Javę było “Thinking in Java” autorstwa Bruce’a Eckela. Myślę jednak, że zdecydowanie warto zapoznać się z książką o nazwie “On Java 8” tego samego autora. A to dlatego, że wszystkie trudniejsze aspekty tego języka są tam rozłożone na czynniki pierwsze (łącznie z programowaniem funkcyjnym). 

Warto też przeczytać “Java Concurrency in Practice” Briana Goetza, ale jej treść może być już teraz trochę nieaktualna, ponieważ Goetz wydał ją zaraz po premierze Javy 5. Polecam również “Effective Java” autorstwa Joshuy Blocha, zwłaszcza, że książka ta została zaktualizowana od momentu Javy 8.  

<p>Loading...</p>