Dlaczego JavaScript jest tak popularny?

Język JavaScript nie znika od kilku lat z topowych pozycji rankingów najpopularniejszych języków programowania. JavaScript jednym z najczęściej proponowanych języków do nauki programowania na początek. Czym jest spowodowany taki stan rzeczy?

Czy jedynie prosta i przyjemna w pisaniu składnia stawia go na szczycie? A może to kompatybilność wsteczna, gwarantująca poprawne działanie aplikacji lub strony internetowej w przyszłości? W tym wpisie postaram się przedstawić swój punkt widzenia. Zacznę jednak od krótkiego przedstawienia zarysu historycznego tego budzącego trochę kontrowersji i niepotrzebnych sporów języka programowania.

Historia języka JavaScript

JavaScript został wynaleziony w roku 1995 przez amerykańskiego programistę i hakera Brendana Eicha pracującego dla Netscape Communications. Człowiek ten chciał osadzić interpreter skryptów języka programowania Scheme w Netscape Navigator, jednej z najpopularniejszych przeglądarek internetowych lat 90. Było to spowodowane potrzebą wprowadzenia większej dynamiki do przeglądarki, a tym samym jej technologicznego uatrakcyjnienia. Niestety składnia języka Scheme nie spodobała się firmie - uznali ją za mało atrakcyjną. Potrzebny był język bardziej przypominający popularną w tamtych latach Javę, który byłby niejako jej skryptowym uzupełnieniem z podobną składnią.

Tak w 10 dni powstał prototyp. Brendan zmieszał w zasadzie trzy różne języki. Firma Netscape wymagała w nowym języku cząstki Javy. Kolejnymi były Scheme oraz Self. Pierwotnie cały projekt nosił nazwę Mocha, jednak w kolejnej wersji przeglądarki Netscape Navigator 2.0 został nazwany LiveScript. Firma Sun Microsystems (matka technologii Java) wraz z Netscape Communications stworzyła współpracę (połączenie sił w obawie przed dużą konkurencją ze strony Microsoftu). Ostatecznie współpraca ta została zerwana, jednak w jej wyniku powstała finalna nazwa nowego języka programowania - JavaScript.

Próg wejścia

JavaScript jest łatwy, kiedy rozpoczynamy naukę. Jest on językiem wysokiego poziomu, przez co składnia jest prosta i zrozumiała dla człowieka znającego podstawy języka angielskiego. Wysoki poziom abstrakcji dystansuje użytkownika od tematów sprzętowych. Aby zacząć przygodę z JS nie potrzebujemy specjalnego środowiska uruchomieniowego, ani pobierania całego języka na nasz sprzęt. W zasadzie wystarczy notatnik lub jakikolwiek edytor tekstu, jednak osobiście odradzam takie ascetyczne podejście :) Istnieje wiele świetnych edytorów przystosowanych do pisania kodu, jak chyba najbardziej popularne darmowe rozwiązanie - Visual Studio Code. Kod zadziała również bezpośrednio w konsoli każdej przeglądarki internetowej więc poszczególne jego fragmenty możemy testować bezpośrednio tam. Podstawy potrzebne na rozpoczęcie eksperymentowania z JavaScriptem poznamy nawet w tydzień czasu.

W JS-ie nie mamy z góry narzuconego paradygmatu programowania, co moim zdaniem również ułatwia sprawę. Porównując go do C# odchodzi nam - przynajmniej na samym początku przygody z programowaniem - podejście obiektowe, którego zrozumienie może skutecznie zniechęcić osobę początkującą. Możemy pisać proceduralnie, obiektowo czy funkcyjnie, więc każdy może zacząć od takiego podejścia jakie zrozumie najlepiej. Pozostałe paradygmaty można wprowadzać stopniowo, co tylko pogłębi naszą wiedzę i zrozumienie JavaScriptu oraz sprawi, że będziemy bardziej wszechstronni na rynku pracy.

W internecie znajdziesz wiele ciekawych kursów JavaScriptu dla początkujących. Wiele z nich jest niebanalnych, np. mają formę gry lub miesięcznego wyzwania. Zapoznaj się z naszym zestawieniem pięciu najciekawszych kursów JS-a.

JavaScript everywhere

Ponad 95% stron internetowych zawiera w swojej strukturze kod javascriptowy. Przez większość historii język ten był używany do wprowadzania dynamiki na stronach internetowych, złośliwi przypisują mu jedynie odpowiedzialność za animacje padającego śniegu na stronie lub efektu podążających za kursorem myszy gwiazdek.

Zmianę przyniósł Node.js, czyli wieloplatformowe środowisko uruchomieniowe powstałe w 2009 roku. Node umożliwia tworzenie aplikacji server-side - czyli po stronie serwera. Tym samym JS wyszedł z przeglądarki internetowej. Platforma node dała programistom możliwość pisania kodu w obrębie jednego języka po stronie frontendu jak i backendu. Od tej pory JavaScript nie służy już tylko dodawaniu interaktywności na stronie internetowej, ale umożliwia tworzenie aplikacji mobilnych (React Native), wieloplatformowych aplikacji desktopowych uruchamianych z pulpitu (Electron.js), budowanie serwerów www i tworzenie aplikacji serwerowych a nawet tworzenie gier komputerowych. Każdy zatem znajdzie tu coś dla siebie.

Społeczność JS

Według statystyk serwisu StackOverflow język JavaScript króluje w rankingach popularności. Jest technologią, o którą najczęściej pytają użytkownicy, ale również najczęściej odpowiadają. Dowodzi to temu, że społeczność wokół JavaScriptu jest bardzo duża i bardzo aktywna. Wróży to świetlaną przyszłość dla języka i środowiska JS. Obecność tak obszernego forum spowodowała powstanie niezliczonych ilości bibliotek i gotowych rozwiązań. Tak więc większość problemów z okresu nauki programowania została już rozwiązana i odpowiedzi są na wyciągnięcie ręki.

Popularność technologii, o które pytali użytkownicy StackOverflow.

Mnogość rozwiązań

Mam tu na myśli swobodę wyboru narzędzi przy pracy jako programista JavaScript. Przykładowo osoba kodująca aplikacje webowe używając do tego języka C# najprawdopodobniej zrobi to przy pomocy technologii ASP.NET. Programista Java najpewniej użyje do tego Springa. W obu wyżej wymienionych przypadkach wybór frameworka jest bardzo ograniczony. Osoba kodująca w JS’ie ma do wykorzystania mnóstwo rozwiązań. Istnieje nawet strona pokazująca czas od powstania ostatniego frameworka ;)

Nie ma jednego dominującego rozwiązania. Jeśli komuś znudzi się pisanie kodu w React.js może przejść na Angulara. Gdy to się nie spodoba mamy do wyboru jeszcze Vue, Ember, Svelte i niezliczoną ilość innych frameworków. Wszystkie te technologie opierają się na jednym języku programowania, czyli nie będzie to dla nas nic nowego - wystarczy zaznajomić się z dokumentacją konkretnego produktu.

Mnogość technologii wykorzystujących JS. Źródło grafiki: https://medium.com/@thedartcode/things-to-have-in-mind-before-picking-a-framework-cbe76f57e8e2

Podsumowanie

Brak stałości, a raczej ogromna elastyczność JavaScriptu niekiedy jest nazywana wadą, dla mnie jednak słabą stroną danego języka jest uzależnianie się od jednej, konkretnej technologii. W ekosystemie JavaScriptu możemy stworzyć stack najbardziej odpowiadających nam bibliotek, paczek oraz narzędzi a przez to świadomie dobierać rozwiązania dopasowane idealnie do problemu, który rozwiązujemy. Zdecydowanie nie jest to język bez wad, jednak należy pamiętać do czego pierwotnie miał on być używany. Uważam, że trzeba być po prostu świadomym jego bolączek i udziwnień, a dzięki temu unikać niezrozumiałych błędów w swoich programach.

Kategorie