Język programowania

Czym jest język programowania?

Język programowania pozwala zapisać kod aplikacji zrozumiały dla człowieka, który następnie tłumaczony jest na język zrozumiały dla komputera. Wszystkie informacje, które zapiszemy w kodzie programu, będą ostatecznie przetłumaczone na ciąg zer i jedynek, bo komputery operują na systemie dwójkowym, co jest odmienne od tego, do czego jesteśmy przyzwyczajeni choćby w szkole, czyli do systemu dziesiętnego.

Dlaczego istnieje tyle języków programowania?

Istnieje wiele języków programowania, z których najpopularniejsze to Java, Python, JavaScript, C#, czy C++, ale oprócz tego istnieją jeszcze dziesiątki innych języków. Można to porównać trochę do różnych języków naturalnych, gdzie również mamy przecież język polski, angielski, niemiecki, czy francuski.

Logotypy języków programowania

Czy nie byłoby łatwiej stworzyć jeden uniwersalny język programowania, aby ułatwić wybór i jego nauka byłaby łatwiejsza? W teorii może i tak, ale okazuje się, że w zależności od tego, jaki program chcemy stworzyć, to nieco inna składnia może być naszym wrogiem, albo sprzymierzeńcem. Przykładowo w Javie piszemy głównie bardzo duże aplikacje złożone niejednokrotnie z setek tysięcy, albo milionów linii kodu, które często służą do przetwarzania wrażliwych danych. Mam tutaj na myśli różne aplikacje bankowe i finansowe, gdzie nie można sobie pozwolić na błąd. W takich aplikacjach kluczowym aspektem jest to, żeby kod był czytelny, dało się go łatwo testować, wykrywać i naprawiać błędy. Mniej ważne, albo nawet niewskazane jest to, żeby kod był jak najkrótszy, bo to mogłoby obniżyć jego czytelność.

Z kolei język JavaScript wykorzystywany jest przede wszystkim do tworzenia skryptów, które sprawiają, że korzystanie ze stron internetowych jest łatwiejsze. Możemy przy jego pomocy dodać np. rozwijane menu, czy dynamicznie doczytać fragmenty treści na stronie. W takich aplikacjach liczy się często zwięzłość zapisu i prostota. Ze względów historycznych to język JavaScript stał się też standardem w tworzeniu aplikacji, które mogą być uruchamiane z poziomu przeglądarki internetowej i tak naprawdę nie da się go na ten moment zastąpić niczym innym. Oczywiście upraszczam nieco w tym momencie sprawę, bo zarówno w Javie jak i JavaScripcie da się tworzyć i proste i skomplikowane programy, ale chcę Ci pokazać, że ze względu na specyficzną składnię są one zazwyczaj wybierane do różnych celów.

Za istnieniem tak wielu języków programowania stoją też często różne firmy, które chcą zainteresować programistów swoimi technologiami. Przykładowo język Java jest rozwijany przez firmę Oracle, C# przez Microsoft, a Swift przez Apple. Każda z tych firma zdaje sobie sprawę, że programiści tworzący aplikacje w "ich" językach programowania, to potencjalni pośredni, lub bezpośredni klienci, którzy kupią od nich różne rozwiązania chmurowe, szkolenia, czy licencje.

Kurs Java

Ile języków programowania powinien znać programista?

Zanim odpowiem na powyższe pytanie, zachęcam Cię do przeczytania artykułu, który napisałem już jakiś czas temu, mianowicie: jaki język programowania wybrać. Opisuję w nim to, że wybór pierwszego języka programowania często determinuje dalszą karierę zawodową, bo rzadko zdarzają się programiści, którzy są biegli w kilku różnych językach programowania. Łatwo znowu porównać to do języków naturalnych. Bez większych problemów znajdziemy osoby, które znają dobrze, albo bardzo dobrze jeden język obcy, ale osoby, które znałyby dwa, trzy, albo jeszcze większą liczbę języków i posługiwałyby się nimi biegle, to już rzadkość.

Jeżeli zostaniesz programistą, to na pewno Twoja wiedza nie ograniczy się do znajomości jednego języka programowania, bo aktualnie mało realne jest stworzenie kompletnej aplikacji w jednym języku. Większość programów, które się aktualnie tworzy, rozdziela się na aplikację działającą po stronie serwera i komunikującą się z nią aplikację działającą po stronie klienta. Aplikacja po stronie serwera najczęściej będzie napisana w takich językach jak Java, C#, albo Python, natomiast aplikację po stronie klienta możemy napisać w języku JavaScript, albo TypeScript, jeżeli będzie ona uruchamiana w przeglądarce internetowej, albo w językach kotlin, lub Swift w sytuacji, gdy będzie to aplikacja na telefon.

Oczywiście dosyć często spotkasz się z tym, że w pracy Twoim zadaniem będzie rozwój tylko jednej z takich aplikacji i będziesz mógł skupić się na jednym języku programowania, ale nawet w sytuacji, w której chciałbyś stworzyć prostą hobbystyczną aplikację internetową, to niezbędne będzie połączenie np. Javy, JavaScriptu, HTMLa i SQL. Choć HTML i SQL formalnie nie są językami programowania, to ciężko je tutaj pominąć. W trakcie swojej kariery nabierzesz biegłości prawdopodobnie tylko w jednym języku programowania, a oprócz tego poznasz kilka języków dodatkowych. Zwróć uwagę na to, że bardzo rzadko spotyka się oferty pracy typu "szukamy programisty ze znajomością Javy, Pythona, C# i C++", tylko są one precyzyjne i wskazują konkretny język, np. "szukamy programisty Javy". Wynika to z tego, że pracodawcy zdają sobie sprawę z tego, że nauka danego języka zajmuje lata i wolą zatrudniać ekspertów z wąskiej dziedziny, niż mieć "przeciętniaków" od wszystkiego. Oczywiście trafiają się jednostki, które po powrocie z pracy do domu poświęcają wolny czas na ciągły rozwój i nieustającą naukę nowych rzeczy, ale są to raczej wyjątki.

Na forach internetowych często spotkasz się też ze stwierdzeniem "dobieraj język programowania do problemu". Problem w tym, że jest bardzo mało osób, które znałyby biegle np. przynajmniej 5 języków programowania i potrafiłyby obiektywnie wybrać najlepsze rozwiązanie.

Dyskusja i komentarze

Masz pytania do tego wpisu? Może chcesz się podzielić spostrzeżeniami? Zapraszamy dyskusji na naszej grupie na Facebooku.