Nasza strona używa cookies. Dowiedz się więcej o celu ich używania i zmianie ustawień w przeglądarce. Korzystając ze strony, wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki. Rozumiem

5 największych mitów o Javie

Sylvain Saurel IT Project Manager / SNCF
Poznaj 5 mitów Javie, które są łatwe do obalenia, a jednak nadal funkcjonują w branży IT.
5 największych mitów o Javie

Mamy rok 2019. Java ciągle pozostaje niekwestionowanym liderem wśród języków programowania w świecie biznesowym. Mimo to, często jest określana jako odchodząca do lamusa, a nawet przez niektórych okrzykiwana nowym COBOL-em. O co tu chodzi?

Java, stworzona w 1995 r. przez Jamesa Goslinga i Patricka Naughtona, odniosła ogromny sukces, któremu nigdy nie zaprzeczano. Przejęcie przez Oracle w 2009 roku wzbudziło wątpliwości co do jego przyszłości, ale ostatnie decyzje firmy Larry'ego Ellisona o krótszym cyklu wydawania kolejnych wersji Java są krokiem we właściwym kierunku. W rzeczywistości umożliwiają one ożywienie JDK i zaoferowanie nowych funkcji w znacznie szybszym tempie.

Ponadto najnowsze główne wersje Java umożliwiły znaczne postępy zarówno gdy chodzi o sam język, jak i platformę jako całość, np. poprzez wprowadzenie Lambd i strumieni w Javie 8 lub poprzez modularyzację JDK dzięki długo oczekiwanemu projektowi Jigsaw, który finalnie został wydany w Javie 9. Chociaż premiera 13. wersji JDK jest spodziewana w połowie września 2019 r., można powiedzieć, że Java już znacznie zbliżyła się do bardziej nowoczesnych konkurentów..

Pomimo wszystkich postępów poczynionych przez inżynierów pracujących nad JDK, zarówno pod względem językowym, jak i JVM, wokół Javy i jej platformy krąży nadal wiele mitów. W tym artykule odniosę się do do 5 najpopularniejszych i spróbuję je obalić.


1. Java is dead

W latach 1995-2006 język Java ewoluował w stosunkowo szybkim tempie, z nową główną wersją co 2 lata. Wprowadzenie Generics w Javie 5 zupełnie zmieniło język w 2004 roku. Wersja 6 JDK została wydana w 2006 roku, wprowadzając tylko nieznaczne modyfikacje. Język był następnie w stagnacji przez kilka lat. Społeczność starała się dojść do porozumienia odnośnie najbardziej niezbędnych zmian w kolejnej wersji Javy. Ponadto przejęcie firmy Sun przez Oracle w 2009 r. nie pomogło postępowi.

W branży pojawia się wiele wątpliwości co do przyszłości Javy. Niektórzy nawet stawiali na jej śmierć pod skrzydłami Oracle. Java 7 została ostatecznie wydana w 2011 roku, ale z ograniczonymi funkcjami w porównaniu do oczekiwanych. W związku z tym projekt modularyzacji Jigsaw został przełożony z powodu trudności społeczności w znalezieniu rozwiązania, które zadowoliłoby wszystkich. 

Dla wielu Java jest na dobrej drodze, aby stać się nowym COBOL-em. Wydanie Javy 8 zajmuje kolejne 3 lata i obejmuje (wreszcie) integrację głównych nowych funkcji dla programistów. Lambdy i strumienie to prawdziwa rewolucja torująca drogę do programowania funkcyjnego w Javie. To był powiew świeżości w Javie, która była krytykowana z każdej strony w obliczu konkurencji języków z większymi możliwościami składniowymi.

Niemniej jednak brak modularyzacji JDK w Javie 8 po raz kolejny rozczarował programistów. Włączenie projektu został odroczony, a ostatecznie modularyzacja została zintegrowana z Javą wersji 9 wydaną we wrześniu 2017 r.

Zdając sobie sprawę z problemów, Oracle zdecydowało się zmienić swoje podejście przy Javie 10, wydanej w marcu 2018 roku. Począwszy od Java 10, Oracle postanowiło wypuszczać nową główną wersję JDK co 6 miesięcy. Celem tego jest częstsze wprowadzanie nowych funkcji, które sprawiają, że język ewoluuje i czyni go bardziej dynamicznym dla społeczności. Dyskredytuje tym samym opinie niektórych programistów, że Java jest martwym językiem.

Moim zdaniem wdrażanie nowej strategii wychodzi bardzo dobrze, gdyż 18 miesięcy po wdrożeniu nowej polityki, Oracle zamierza wydać Javę 13 już 17 września 2019 r. To dowodzi, że Java jest daleka od bycia martwym językiem, a porównanie do COBOL-a to spore przegięcie.


2. Java jest powolna

Jednym z bardziej uporczywych mitów o Javie jest taki, że jest ona powolna. W pewnym stopniu opiera się on na prawdzie, ponieważ pierwsze wersje Javy były rzeczywiście wolniejsze niż skompilowane języki, takie jak C lub C++.

Jednak aby dotrzymać obietnicy sloganu „Napisz raz, uruchom gdziekolwiek”, platforma Javy musiała poczynić pewne ustępstwa, a jej maszyna wirtualna dodała warstwę oprogramowania. Kosztem wydajności.

JVM mógł być problemem nie tylko dlatego, że to dodatkowa warstwa oprogramowania, ale też niektóre implementacje były na początku naprawdę powolne.Mit ten przetrwał i zwolennicy C lub C++ muszą stawić czoła faktom: JVM jest teraz szybka! Powiedziałbym nawet, że jest bardzo szybka. Ponadto od wczesnych lat istnienia Javy nastąpił tak duży postęp technologiczny, że dodanie dodatkowej warstwy oprogramowania, takiej jak JVM, nie ma realnego wpływu na wydajność w zdecydowanej większości aplikacji biznesowych.

Kompilator JVM Just-In-Time (JIT) to cudeńko, które znacznie poprawia wydajność aplikacji javowych. Poziom wydajności osiągnięty przez JVM jest obecnie taki, że służy on jako platforma dla wielu innych języków, jak Kotlin, Groovy czy Scala. Nie mówimy już więc tylko o języku Java, ale także o całym ekosystemie.

Następnym razem, gdy ktoś powie Ci, że Java działa wolno, nie marnuj czasu na szukanie testów porównawczych do C lub C++, ale po prostu odpowiedz im, że ten mit kiedyś miał rację bytu, ale nadszedł czas, aby Twój rozmówca zaktualizował rzetelnie swoją wiedzę na ten temat.


3. Java stała się usługą płatną

W 2018 roku Oracle ogłosiło w nieco mylący sposób, że JDK będzie teraz płatny przy profesjonalnych zastosowaniach w produkcji. Oczywiście zamieszanie doprowadziło niektórych do argumentowania, że Java stała się usługą płatną! Tak jednak nie jest. To kolejny mit do obalenia.

W rzeczywistości Oracle dystrybuuje teraz dwie wersje JDK:

  • Oracle JDK
  • Oracle OpenJDK


Oracle JDK jest bezpłatne w zastosowaniach deweloperskich i testowych, ale za korzystanie z niego w środowisku produkcyjnym trzeba zapłacić. Posiada ono długoterminowe wsparcie Oracle. Istnieje również Oracle OpenJDK, który jest całkowicie bezpłatny dla dowolnego środowiska.

Tak więc Java pozostaje darmowa, dopóki korzystasz z Oracle OpenJDK. Ponadto istnieją inne implementacje JDK, których możesz używać, co zapewni Ci darmowy dostęp w dłuższej perspektywie. Np. można użyć kompilacji JDK zaproponowanych przez społeczność AdoptOpenJDK. Niedawno Amazon udostępnił własne kompilacje JDK pod nazwą Amazon Corretto, z całkowicie bezpłatnym długoterminowym wsparciem.


4. Java nie może mieć przecieków pamięci

W Javie pamięcią zarządza Garbage Collector. Dlatego w przeciwieństwie do języków takich jak C lub C++, programista nie musi samodzielnie zajmować się zarządzaniem pamięcią. Wszystko to ma na celu oderwanie programisty od ręcznego zarządzania i tym samym ograniczenie możliwości wycieków pamięci. W oparciu o to założenie wiele osób uważa, że nie ma możliwości wycieków pamięci w Javie.


Java Garbage Collection

To kolejny mit, który należy obalić. W rzeczywistości przez niezwalnianie referencji do obiektów i zmiennych, które już nie są przydatne, programista powstrzymuje Garbage Collector przed prawidłowym działaniem. Doprowadzi to do spowolnienia aplikacji i problemów z pamięcią. Ponadto wycieki pamięci są możliwe, jeśli zasoby wejścia/wyjścia nie zostaną zwolnione lub gdy np. wykorzystujesz kod natywny za pośrednictwem JNI.

W każdym razie należy pamiętać, że używanie języka zarządzającego pamięcią, takiego jak Java, nie oznacza, że programista nie powinien projektować programów z uwzględnieniem problemów z zarządzaniem pamięcią. Deweloper musi wziąć to pod uwagę, nawet jeśli sposób rozumowania nie jest taki sam, jak w przypadku języków kompilowanych pokroju C czy C++. Wszystko pozostaje kwestią zdrowego rozsądku.


5. Java jest jedynym językiem, którego musisz się nauczyć

Java ciągle pozostaje jednym z  języków najczęściej używanych w firmach. Ponadto wspaniały sukces Androida w świecie mobilnym sprawia, że doskonale nadaje się ona do tworzenia aplikacji mobilnych. Framework Java EE pozwala tworzyć aplikacje internetowe w języku Java. Po stronie klienta Java jest również w centrum uwagi dzięki Swing lub Java FX. Dzieje się tak pomimo faktu, że Swing wciąż się starzeje, a obsługa Oracle dla Java FX wydaje się teraz trochę zaniedbana.

Ten język pozwala robić prawie wszystko. Dlatego niektórym może się wydawać, że Java jest jedynym językiem programowania, jakiego powinni się nauczyć. Jednak zawierzenie temu byłoby sporym nadużyciem!

Rzeczywiście, fakt, że Java pozwala robić wszystko, nie oznacza, że jest to najlepsze rozwiązanie we wszystkich przypadkach. Zatem każdy język programowania ma swoje zalety i wady w zależności od rodzaju aplikacji i domeny problemu.

Jako programista musisz być zawsze otwarty na nowe języki i technologie. Ponadto w IT wszystko rozwija się bardzo szybko. Dlatego nigdy nie powinieneś zatracić umiejętności uczenia się nowych rzeczy. Pozwoli Ci to osiągać jeszcze większe sukcesy zawodowe.


Podsumowanie

Java pozostaje najczęściej używanym językiem programowania, a właściwie liderem, który wszyscy konkurenci chcą usunąć z piedestału. Dlatego mity o Javie jeszcze długo będą funkcjonowały w świecie programistycznym.

Podsumowując, pamiętaj, że Java istnieje i ma się dobrze, ale bądź pragmatyczny i wybieraj technologie idealnie dobrane dla każdego konkretnego projektu.


Oryginał tekstu w języku angielskim przeczytasz tutaj.

Masz coś do powiedzenia?

Podziel się tym z 120 tysiącami naszych czytelników

Dowiedz się więcej