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 własne 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 2019

JAVA

Mówi się coraz częściej, że Java za kilkanaście lat wypadnie z kręgu najczęściej wykorzystywanych języków i zostanie zastąpiona przez inne języki programowania. 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 optymalizację. 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. Tu znajdziecie o więcej informacji o tym, czy jest sens dzisiaj się jej uczyć.

Java (języki programowania 2019)

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

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 bibliotek przeznaczonych do formatowania łańcuchów znaków, generowania pseudolosowych liczb itd.

WADY:

  • kompilacja do kodu bajtowego powoduje obniżenie wydajności w działaniu
  • 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. 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 i zainstalowania z wbudowanym interpreterem. Polecam go każdemu początkującemu!

Python (języki programowania 2019)

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

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 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.
  • 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 wcięciach 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++.

Język C++ (języki programowania 2019)

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

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
  • jest bardzo rygorystyczny (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 tylko w takich okolicznościach w nim pisałem, natomiast jako "czysty" język również sprawdzi się w tworzeniu różnych aplikacji. Znaczna część składni pochodzi z Javy więc tak naprawdę jeśli umiecie Javę, to w mik zrozumiecie "C Sharpa". Na dodatek posiada specjalne właściwości służące za prawdziwe "gettery" i "settery", których jako takich nie ma w Javie (funkcje jedynie "udają").

Język C# (języki programowania 2019)

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.

ZALETY:

  • znaczna część składni to Java, zatem wystarczy trochę czasu na dostrzeżenie różnic i już można swobodnie w nim pisać
  • doskonała integracja z bazami danych
  • język wysokiego poziomu poszerzony o kilka wyjątkowych rzeczy ("var" jako odpowiednik "auto" w C++11, "gettery" i "settery", listy itp.)

WADY:

  • kompilacja do kodu pośredniego tak jak w Javie odbija się negatywnie na wydajności aplikacji
  • język wymaga instalacji ".NET Framework" (jeśli Windows) lub ".NET Core" (jeśli inny system)
  • 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 w trakcie interpretowania, to są według mnie, największe słabe punkty JavaScript'u jednak znając go od podszewki da się znimimalizować zarówno jedno, jak i drugie.

JavaScript

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

ZALETY:

  • brak ścisłego typowania zmiennych (w celu utworzenia zmiennej wystarcza jedynie słowo "var" choć w pewnych sytuacjach, zmiana na inny typ wartości może mylić programistę)
  • możliwość wykorzystywania płótna ("canvas") w HTML'u do tworzenia gier, galerii obrazów, rysowania figur itp.
  • paradygmat programowania obiektowego jak i funkcyjnego

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. 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.