Jason. Cała informatyka w jednym miejscu!

Czas napisać coś na temat odchodzący od mojej działalności. 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 tym bardziej, że ja sam mam zamiar opanować poniższe języki. Podkreślam, że to jest tylko moje subiektywne zdanie i jak zawsze poparte konkretnymi argumentami. Macie 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, ale na chwilę obecną jest to podstawa w kwestii znalezienia pracy. Choć nie jestem doświadczonym developerem, 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 ("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ć.

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

ZALETY
  • wbudowany odśmiecacz zapobiega pozostawianiu niepotrzebnej już pamięci
  • wirtualna maszyna gwarantująca identyczne działanie programu na każdym systemie wspierającym Javę (słynne hasło "napisz raz, uruchom wszędzie")
  • dużo gotowych bibliotek przeznaczonych do formatowania łańcuchów znaków, generowania pseudolosowych liczb itd.
WADY
  • od 2019 roku obowiązuje płatna subskrypcja w przypadku wykorzystywania języka do celów komercyjnych
  • w celu przerobienia programu na plik wykonywalny, należy to zrobić za pomocą zewnętrznych "wspomagaczy" (program / biblioteka)

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!

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

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)

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 znajdziecie pracę jeśli doskonale opanujecie 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++.

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

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 rozwiązania problemu każdej kategorii)
  • obsługuje wiele paradygmatów (można pisać obiektowo, generycznie, proceduralnie, funkcyjnie lub jeszcze inaczej)
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
  • wyróżnia się innymi zasadami niż dzisiejsze języki programowania (nie można skompilować programu, jeśli na przykład 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)

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 za dzieciaka tylko w takich okolicznościach w nim pisałem, 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śli umiecie Javę, to w mik zrozumiecie "CSharpa". Na dodatek posiada specjalne właściwości służące za prawdziwe "gettery" i "settery", których jako takich nie ma w Javie (metody jedynie "udają").

Logo języka C#

C# pochodzący z języka Java wyróżnia się od C i C++ odejściem od manualnego zarządzania pamięcią oraz wspieraniem jedynie paradygmatu obiektowego.

Źródło: CDNLogo

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
  • język wysokiego poziomu poszerzony o kilka wyjątkowych rzeczy ("var" jako odpowiednik "auto" w C++11, "gettery" i "settery", listy itp.)
WADY
  • język jest zależny od architektury ".NET Framework" przez co tylko systemy Windows będą w 100% kompatybilne z aplikacjami napisanymi w tym języku (reszta systemów ma do dyspozycji ".NET Core")
  • wiele słów kluczowych występujących tylko w tym języku powoduje możliwość zastosowania ich tylko tutaj

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 HTML'a oraz CSS'a charakteryzujący się prostą składnią stanowi istotny filar spośród innych języków programowania warty podstawowego opanowania. 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 oraz błędy mogące się ujawnić dopiero w trakcie interpretowania, to są według mnie największe słabe punkty JavaScript'u, jednak znając go od podszewki da się zminimalizować zarówno jedno, jak i drugie.

Logo języka JavaScript

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

Źródło: Wikimedia

ZALETY
WADY
  • składnia może powodować łatwe utworzenie "makaronu" w kodzie z powodu długich poleceń w połączeniu ze słowami kluczowymi i nawiasami ("spaghetti code")
  • kod nie jest chroniony, można go łatwo zobaczyć w konsoli JavaScript z przeglądarki (aby go w pewnym stopniu ochronić, konieczna jest jego "minifikacja")
  • jest to język interpretowany, zatem każdy błąd zostaje 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")

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, ale również przy ubieganiu się o stanowisko pracy. Sam mam zamiar ogarnąć je wszystkie, jednak głównie dla własnych korzyści, bo uważam je za najcenniejsze i najbardziej zbliżone do najczęstszego wykorzystywania.