Ponieważ dość już siedzę w tym fachu i dopatruję się wielu powtarzających się sytuacji uważam, że mogę w jakimś stopniu odpowiedzieć na pytanie "jakie języki programowania opłaca się znać?" i podzielić się swoimi spostrzeżeniami. Podkreślam, że to jest tylko moje subiektywne zdanie i jak zawsze poparte konkretnymi argumentami. Masz prawo się nie zgadzać 🤝. Przedstawiam języki programowania, które w 2019 roku uważam za fundamentalne, zarówno w kwestii znalezienia pracy, jak również rozwijania swoich zdolności w zaciszu domowym. Ponadto do każdego z nich przedstawiam garść zalet i wad.

JĘZYKI PROGRAMOWANIA WARTE UWAGI W 2019 ROKU

JAVA

Chodzą słuchy, że Java za kilkanaście lat wypadnie z kręgu najczęściej wykorzystywanych języków i zostanie zastąpiona przez język Kotlin. Czy rzeczywiście? Być może, natomiast na chwilę obecną jest to podstawa w kwestii znalezienia pracy. Choć nie jestem doświadczonym deweloperem, to jednak widać oferty pracy wśród których Java z całą pewnością brana jest pod uwagę. W dzisiejszych czasach nie stawia się na maksymalnym oszczędzaniu na pamięci. Stawia się na szybkość widzenia efektu końcowego. Wysoki poziom abstrakcji, masa bibliotek, wirtualna maszyna, odśmiecacz (tzw. "Garbage Collector"). Ponadto znajduje też zastosowanie w programie "Android Studio" tuż obok Kotlina, zatem mobilne aplikacje też można tworzyć dzięki Javie 📱. Pisałem już o tym, czy jest sens dzisiaj się jej uczyć.

ZALETY
WADY
  • od 2019 roku obowiązuje płatna subskrypcja w przypadku wykorzystywania języka do celów komercyjnych (polecam skorzystać z "Eclipse Adoptium"),
  • w celu przerobienia programu na plik wykonywalny, należy to zrobić za pomocą zewnętrznych "wspomagaczy" (program / biblioteka).
Logo języka Java

Java jest często wybieranym językiem programowania ze względu na zapewnianą niezależność platformową oraz silny związek z systemem Android.

Źródło: Wikipedia

PYTHON

Język Python charakteryzuje się dziecinną składnią i elastycznością w pisaniu. Pozwala uniknąć skomplikowanych zapisów przy deklaracji tablic, list czy obiektów wymagając jedynie zastosowania właściwej pary znaków. Nic więc dziwnego w tym, że znajduje też swoje miejsce na stanowiskach pracy. Jest prosty i doskonały do pisania krótkich programów "na szybko". Może służyć też jako dodatek do innego języka, aby wykonywał jedynie część programu lub jakąś pojedynczą operację umożliwiając w ten sposób hybrydowe pisanie w kilku językach naraz 👍. Mimo wszystko, język warty opanowania choćby ze względu na prostą składnię, która w większości przypadków kończy się na jednym wersie. Był, jest i będzie w pełni darmowy do pobrania oraz zainstalowania z wbudowanym interpreterem. Polecam go każdemu początkującemu ☺️!

ZALETY
  • dziecinnie prosta składnia umożliwiająca wykonywanie większości poleceń kończąc przeważnie na tej samej linijce,
  • w pełni darmowy z wbudowanym IDE o nazwie "IDLE" łącznie z nieograniczonym wykorzystaniem do celów komercyjnych,
  • dynamiczne typowanie zmiennych (ta sama zmienna raz jest tekstem, a po chwili może być obiektem).
WADY
  • język interpretowany jest znacznie wolniejszy od kompilowanego, gdyż wykonuje jedno polecenie za drugim, przez co musi za każdym razem analizować ten sam kod (głównie umieszczony w pętlach) przekładając to na wydajność i z tego względu nie jest zalecany jako język do tworzenia zaawansowanych gier i programów,
  • interpreter ze względu na pojedyncze wykonywanie poleceń będzie w stanie wykryć błędy dopiero w trakcie działania programu,
  • wykorzystuje składnię polegającą na tworzeniu wcięć przy tworzeniu bloku funkcji czy pętli, przez co mocno różni się od konwencji znanej w większości języków (klamerki).
Logo języka Python

Język Python dysponuje szerokim spektrum możliwości posiadając przy tym nad wyraz przyjemną składnię.

Źródło: Wikimedia

C++

Absolutny obowiązek w dziedzinie programowania. Utworzony w 1983 roku przez Bjarne Stroustrupa nadal wykazuje się użytecznością w zakresie pisania efektywnego kodu źródłowego zarówno wysoko, jak i niskopoziomowego gdzie w grę wchodzi wyciśnięcie jak największej prędkości działania ⏩. Tutaj też bez wątpienia znajdziesz pracę, jeśli doskonale opanujesz podstawy języka będąc przygotowanym na różne niespodzianki wynikające z niedopatrzeń. Jest na tyle rozbudowany, że można się go uczyć nawet przez całe życie 🤯. Pomimo, że jest się narażonym na masowe ilości drobnych pomyłek, C++ bez wątpienia stanowi konkurencję dla innych języków pod wieloma względami i tak już chyba zostanie na zawsze. Żadne inne języki programowania nie mogą się równać z potęgą C i C++ 🏆.

ZALETY
  • ma bezpośredni kontakt z operacjami niskopoziomowymi przez co wpływa korzystnie na szybkość aplikacji,
  • jest językiem ogólnego przeznaczenia (nadaje się do aplikacji każdej kategorii),
  • obsługuje wiele paradygmatów (można pisać obiektowo, generycznie, proceduralnie, funkcyjnie).
WADY
  • programista nieprawidłowo korzystając ze wskaźników jest narażony na anomalia w trakcie wykonywania programu przez co nie jest to dobry język do rozpoczynania nauki programowania,
  • brak ochrony na przekroczenie zakresu liczb całkowitych,
  • jest dużo bardziej rygorystyczny niż młodsze języki programowania (nie można skompilować programu, jeśli np. dochodzi do wielokrotnego dołączenia tego samego pliku korzystając z dyrektywy "include" lub gdy nie widzi prototypu zadeklarowanej funkcji, gdy jest ona umieszczona później niż jej wywołanie).
Logo języka C++

C++ stanowi fundament do nauki programowania wymagając od programisty bezbłędnej obsługi zarządzania pamięcią.

Źródło: Wikimedia

C#

Alternatywa Javy wytworem firmy Microsoft również znajduje zainteresowanie wśród pracodawców jako język programowania, z którego warto korzystać. Wszyscy zainteresowani programowaniem obiektowym mającym styczność z Javą, powinni też moim zdaniem opanować podstawy C#. Przyznaję, że patrzę na ten język programowania przez pryzmat doświadczeń tworzenia w silniku "Unity", bo głównie w takich okolicznościach z niego korzystam, natomiast jako "czysty" język również sprawdzi się w tworzeniu różnych aplikacji np. z użyciem "Windows Forms" 👍. Znaczna część składni pochodzi z Javy, więc tak naprawdę jeżeli umiesz Javę, to w mig zrozumiesz "CSharpa". Na dodatek posiada wygodne skróty składniowe, których brakuje Javie np. właściwości, zamiast metod do przypisywania i pobierania wartości.

ZALETY
  • znaczna część składni to Java, zatem wystarczy trochę czasu na dostrzeżenie różnic i już można swobodnie w nim pisać,
  • dozwolone wykorzystywanie dla celów komercyjnych i dostęp do kodu źródłowego,
  • język wysokiego poziomu poszerzony o kilka wyjątkowych rzeczy ("var" jako odpowiednik "auto" w C++11, właściwości "get" i "set" itp.).
WADY
  • brak jakichkolwiek poważnych do przytoczenia
Logo języka C#

C# pochodzący od języka Java posiada bardzo podobną składnię, a także wspiera zapisy podnoszące komfort do osiągnięcia tego samego celu.

Źródło: CDNLogo

JAVASCRIPT

JavaScript wbrew zbieżności nazw, nie ma nic wspólnego z Javą, natomiast z całą stanowczością jest to język, który warto znać 📖. Skrypty wykonywane po stronie klienta również są potrzebne człowiekowi na co dzień. Jeden z elementów przeglądarkowej "triady" zaraz obok języków HTML oraz CSS charakteryzujący się prostą składnią, stanowi istotny filar spośród innych języków programowania. Moim zdaniem, jest to język który też przyda się zawsze, bez względu na okoliczności. Szczególnie jeśli myślimy o utworzeniu własnej strony i wstawieniu jej na serwer 🌐. Brak ochrony kodu źródłowego bez odpowiednich sztuczek oraz błędy składniowe mogące się ujawnić dopiero w trakcie interpretowania - to są według mnie największe słabe punkty języka JavaScript, jednak znając go od podszewki da się zminimalizować zarówno jedno, jak i drugie.

ZALETY
  • brak ścisłego typowania zmiennych (w celu utworzenia zmiennej, wystarcza jedynie słowo "let", choć w pewnych sytuacjach zmiana na inny typ danych może mylić programistę),
  • możliwość wykorzystywania płótna (ang. canvas) w języku HTML do tworzenia gier, galerii obrazów, rysowania figur itp.,
  • wspiera paradygmat obiektowy i funkcyjny.
WADY
  • kod źródłowy wypuszczony na serwer nie jest w żaden sposób chroniony - można go łatwo zobaczyć w konsoli JavaScript z przeglądarki (aby go w pewnym stopniu ochronić, warto poznać technikę "minifikacji"),
  • jest to język interpretowany, zatem każdy błąd składniowy zostanie wychwycony dopiero w trakcie wykonywania programu - wówczas funkcja zostaje zatrzymana i wykonuje się tylko do momentu wykrycia błędu, co może być niepożądane przy wczytywaniu zawartości strony "tylko do połowy".
Logo języka JavaScript

JavaScript obsługuje skrypty wykonywane po stronie klienta na stronie internetowej.

Źródło: Wikimedia


Oto języki programowania, które uważam za "przyszłościowe", a przynajmniej przydatne przez długi okres czasu nie tylko w prywatnym wykorzystywaniu, lecz również przy ubieganiu się o stanowisko pracy 💼.