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

Java czy Python? Język dla początkującego programisty

Java czy Python? Język dla początkującego programisty

Wybór języka programowania to kluczowa decyzja dla początkującego programisty. Oczywiście nic nie stoi na przeszkodzie, aby zmienić język w trakcie nauki lub rozpocząć poznawanie drugiego po opanowaniu pierwszego, ale właściwie podjęta decyzja już na samym początku przygody z programowaniem może znacznie przyspieszyć karierę zawodową. Dziś zastanawiamy się, czy na początek będzie lepszy Python, czy Java.

Jeśli sprawdzicie nasz raport o społeczności IT, to upewnicie się, że zarówno Python, jak i Java, znajdują się w czołówce najpopularniejszych języków programowania - z wyższym wynikiem tego drugiego. Czy jednak to, że Java cieszy się najczęściej większą popularnością niż Python, oznacza, że warto rozpocząć naukę kodowania właśnie od tego języka? Ta kwestia nie jest wcale taka oczywista.


Java

Wiele znanych serwisów internetowych bazuje na Javie. Przykładem może być LinkedIn, Amazon czy Netflix. Chociaż język ten ma już 24 lata, nic nie wskazuje, aby wkrótce miał odejść w zapomnienie. Wręcz przeciwnie, jego popularność zwiększa się z roku na rok. Szacuje się, że obecnie może programować w nim nawet ponad 45% deweloperów na świecie. Jego dużą zaletą jest bardzo wysoka kompatybilność, która sprawia, że bez problemu pracują obecnie starsze aplikacje, napisane w Javie i bez zakłóceń będą pracowały w przyszłości, pomimo nieustannych aktualizacji Javy.

Java to obiektowy język programowania wysokiego poziomu, którego ojcem jest James Gosling. To właśnie on nadzorował zespół programistów, który w 1995 roku w Sun Microsytems opracował Javę. Ten język koncentruje się silnie na programowaniu obiektowym, ale w przeciwieństwie do języka C++, z którego wiele czerpie, nie ma tu dziedziczenia wielokrotnego. Zachodzi tu dziedziczenie po jednej klasie nadrzędnej.

Dużą zaletą Javy jest niezależność od architektury dzięki temu, że mamy tu kompilację do kodu pośredniego, który jest wykonywany przez wirtualną maszynę (Java Virtual Machine) niezależnie od systemu operacyjnego. Nic dziwnego, że przed laty reklamowano ten język sloganem: „Napisz raz, uruchom wszędzie” („Write once, run anywhere”).


Python

Język Python to również bardzo ciekawy język programowania. Jego nazwa nie wywodzi się wcale od węża, jakby się mogło w pierwszej chwili wydawać, ale od nazwy angielskiej grupy komików Monty Python. Z tego języka korzysta między innymi amerykańska agencja kosmiczna NASA, YouTube czy Reddit.

Python to język wysokiego poziomu, który charakteryzuje się bardzo prostą składnią. Jego głównym twórcą jest holenderski programista Guido van Rossum, który założył, że Python będzie następcą języka ABC. Pierwsza wersja Pythona ukazała się w 1991 roku, potem światło dzienne ujrzały kolejne.

Jest to język bardzo elastyczny, który pozwala na dużą swobodę. Można używać go zarówno do programowania obiektowego, jak i strukturalnego, a nawet funkcjonalnego. Wiele osób wskazuje, że Python jest podobny pod wieloma względami do Perla, ale w rzeczywistości mamy tu do czynienia z większą prostotą i przejrzystością składni. W Pythonie stosuje się dynamiczne typy, a wszystkie wartości przekazuje się za pomocą referencji. Ten język programowania pozwala tworzyć zarówno serwisy internetowe, jak i aplikacje desktopowe, sieciowe czy skrypty, a nawet gry. Do dyspozycji jest kilka silników obsługujących 2D i 3D.
 


Na który język postawić?

Zastanawiając się nad wyborem między Javą a Pytonem, początkujący programista ma nie lada dylemat. Warto przy tym wziąć pod uwagę kilka aspektów, tym bardziej że obydwa te języki nadają się dobrze do tego, aby rozpocząć przygodę z kodowaniem.

Python wydaje się być jednak prostszy w obsłudze dla "żółtodzioba" i w zasadzie nie wymaga skomplikowanej konfiguracji, aby rozpocząć z nim pracę. W przypadku Javy trzeba poświęcić nieco więcej czasu na konfigurację.

Dodatkowo Javę trzeba kompilować. Do bardziej skomplikowanych aplikacji konieczne będzie użycie jednego z narzędzi do budowania (Ant, Maven, Gradle). Python jest językiem interpretowanym i w zasadzie jedynym problemem jest zarządzanie zależnościami.

Python jest atrakcyjny dla początkującego programisty również dlatego, że jest bardzo zwięzły, nie trzeba w nim pisać tak wiele kodu, aby wykonać jedno zadanie, jak to jest w przypadku Javy. Być może na początku przygody z kodowaniem wyda się to nieistotne, ale gdy przyjdzie pracować nad bardziej rozbudowanymi projektami, zwięzłość Pythona staje się nieoceniona. Przy okazji warto od razu wyrobić w sobie nawyk pisania prostego i przejrzystego kodu. Skłonność do komplikowania nie jest cnotą w przypadku programisty.


Zastosowania

Dużo ważniejsze niż to, jak wyglądają kwestie estetyczne, są możliwości obydwu języków. Co można tworzyć, pisząc w każdym z nich?

Aplikacje webowe

Do pewnego stopnia skomplikowania Python wydaje się rozsądniejszym wyborem - ze względu na większą ekspresyjność. Framework taki jak Django, Flask czy web2py na pewno ułatwi pracę. Wgranie na serwer z punktu widzenia "żółtodzioba" też jest łatwiejsze. W końcu wgrywasz kod, a nie WAR-a/JAR-a jak to jest w przypadku Javy.

Im aplikacje są bardziej obciążone lub rozbudowane, tym bardziej uwidaczniają się korzyści Javy. Na dobrze skonfigurowanym środowisku Java jest bardzo wydajna, a proces skalowania aplikacji był wielokrotnie przećwiczony przez tysiące zespołów javowców na całym świecie. Dlatego też Java to najukochańszy język środowisk finansowych. Używany jest często jako rdzeń aplikacji tradingowych czy innych systemów finansowych. Nie oznacza to jednak, że Python skaluje się źle.

Aplikacje na Androida

W zasadzie nie ma takiej możliwości, jeżeli chodzi o Pythona. Trzeba jednak pamiętać o tym, że środowisko androidowe coraz bardziej stawia na Kotlina (jeden z języków odpalanych na JVM, który zdobywa popularność, szczególnie na Androidzie).

Data Science i AI

Tutaj obydwa języki przez długi czas radziły sobie stosunkowo podobnie, jednak obecnie Python deklasuje Javę. Owszem - większość popularnych bibliotek oferuje API w Javie, jednak to Python jest tu dużo bardziej popularny. Jego skryptowa natura i zwięzła składnia bardziej wydaje się odpowiadać osobom, które zajmują się tymi działkami. Przykładowo TensorFlow (biblioteka do uczenia maszynowego od Google’a) wystawia API zarówno w Javie jak i w Pythonie, ale tylko to drugie ma ich „gwarancję stabilności”, jako najbardziej dojrzała wersja.

Inne zastosowania

Również wiele zagadnień około-naukowych jest rozwiązywanych z pomocą Pythona. Biblioteki takie jak SciPy, NumPy czy EarthPy są używane przez naukowców do obliczeń, czy wizualizacji. Jeżeli chodzi o wizualizację danych, to jest to kolejny mocny punkt Pythona.

Java jest też bardzo mocna, jeżeli chodzi o Big Data. Hadoop czy ElasticSearch są napisane właśnie w Javie. Oczywiście są to usługi, które można używać z każdą inną technologią, jednak pokazuje potencjał języka. Stanowiska z obszaru Big Data często są łączone ze znajomością Javy, która ma tu nieznacznie większy udział niż Python.

Na koniec warto wspomnieć, że Pythona często używa się do skryptowania gier.


Ekosystem

Zaryzykuję stwierdzenie, że największą siłą Javy jest JVM. Tak, ten sam JVM, który - gdy źle skonfigurowany - przyprawi Cię o ból głowy. Dlaczego robi różnicę? Bo można na nim odpalić kilka co najmniej fajnych języków programowania. Kotlin, Scala, Clojure, Groovy. Bonus Jython (implementacja Pythona na JVM) i JRuby (Ruby na JVM). Javowcy często uczą się innych języków rodziny JVM. Sczególnie Scala i Kotlin zdobywają popularność. Mogą one służyć jako uzupełnienie starej dobrej Javy albo mogą być wybrane jako główny język do projektu. Co najważniejsze, po kompilacji będzie się je odpalać tak samo, jak Javę. To rozszerza spektrum możliwości rozwoju programistów tego ekosystemu i niewątpliwie wnosi powiew świeżości. Cieszy również rozwój samej Javy, która w wersji 8 wprowadziła elementy funkcyjne.

Siłą ekosystemu Pythona są biblioteki, które wspierają bardzo wiele różnych dziedzin życia. To daje spore możliwości próbowania różnych rzeczy. Jedną z zauważalnych wad tego ekosystemu jest to, że nadal rozwijane są dwie wersje Pythona - 2.x i 3.x. Jest to sytuacja dość dziwna, ale pythonowcy jakoś sobie z tym radzą i twierdzą, że w codziennej pracy nie jest to problemem.


Werdykt?

Wiele przemawia na korzyść Pythona jako ciekawszego języka do uczenia się programowania. Przede wszystkim jest to prostota i różnorodność projektów, w jakich można uczestniczyć - gdy już stanie się programistą. W końcu termin Sztuczna Inteligencja pobudza wyobraźnie o wiele bardziej niż system tradingowy.
 
Zauważa to coraz więcej osób. Warto wspomnieć, że to właśnie Python w 2015 roku wyprzedził w brytyjskich podstawówkach język francuski pod względem popularności. Wygląda na to, że ofensywa Pythona nasila się na całym świecie, chociaż jeszcze do niedawna to właśnie Java dominowała w nauczaniu. Trend jednak się zmienia. Kto wie, być może wkrótce na czele raportów pojawi się właśnie Python i na dłużej stanie się liderem?

Zobacz więcej na Bulldogjob

Masz coś do powiedzenia?

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

Dowiedz się więcej
Rocket dog