JavaScript: kompletny przewodnik dla przedsiębiorców i product ownerów

Wszystko, co musisz wiedzieć o biznesowym wykorzystaniu JS w 2022 roku

Wprowadzenie. Dlaczego JavaScript (JS)?

Wyobraź sobie, że Twój dział wypuszcza zupełnie nowy produkt i potrzebujesz eleganckiej strony, która narobi szumu wokół premiery. Albo że planujesz uruchomić skalowalny marketplace B2B.

Oba pomysły możesz zrealizować w JavaScripcie.

A jeśli chcesz zbudować pomysłowy produkt cyfrowy, na przykład platformę z grami w przeglądarce albo aplikację na smartwatcha? Albo aplikację mobilną, która wzmocni Twoją obecność na rynku, poprawi obsługę klienta lub zwiększy produktywność zespołu?

Tak, to też zbudujesz w JS.

Ta wszechstronność JavaScriptu w połączeniu z jego szybkością i interoperacyjnością sprawia, że jest to najpopularniejsza technologia programistyczna na świecie (ósmy rok z rzędu!). Niesłabnąca popularność tego języka oznacza, że dziś już chyba nikt w Twojej firmie, łącznie z osobą prowadzącą biuro, nie pomyli go z Javą*. Jeśli jednak czujesz, że o JS warto wiedzieć coś więcej, ten praktyczny przewodnik jest dokładnie tym, czego potrzebujesz.

* jeśli to nadal problem, niech przeczytają tę sekcję.

Dla kogo jest ten przewodnik?

Nasz przewodnik po JavaScripcie jest dla każdego, kto pracuje w biznesie i chce zrozumieć programowanie w JavaScripcie oraz to, co oznacza ono dla firmy. 

Możesz być założycielem startupu, który chce olśnić salę pełną inwestorów interaktywną prezentacją.

Albo product ownerem, który potrzebuje strony lub aplikacji webowej, żeby promować i sprzedawać produkt.

Albo project managerem, który chce zbudować wewnętrzną platformę do koordynowania pracy swoich zespołów.

Nasz przewodnik przyda się też przedsiębiorcom, którzy chcą, żeby aplikacje firmowe działały wydajniej, zespoły interdyscyplinarne pracowały sprawniej, a procesy biznesowe były zautomatyzowane.

Niezależnie od sytuacji ten przewodnik pomoże Ci poznać JavaScript i jego zastosowania. Zdecydujesz, czy to właściwy język programowania do Twojego kolejnego dużego projektu.

Czego dowiesz się z tego przewodnika?

Mnóstwa (mamy nadzieję). Jeśli jednak mamy wskazać pięć najważniejszych rzeczy, będą to:

Dlaczego tysiące firm co roku wybiera JavaScript.

Jakie niesamowite rzeczy możesz zbudować w JS, a jakich nie.

Czym u licha są frameworki JS i dlaczego są Ci potrzebne.

Ile zapłacisz za projekt i co wziąć pod uwagę przy planowaniu budżetu.

Gdzie znaleźć najlepszych programistów JavaScript do kolejnego projektu.

Zaczynajmy! A jeśli nie masz teraz czasu na lekturę przewodnika, pobierz wersję PDF i zachowaj ją na później.

Klikając „Pobierz e-booka”, wyrażasz zgodę na przetwarzanie Twoich danych przez Ideamotive Sp. z o. o. w celach marketingowych, w tym marketingu e-mailowego.

kamil_osiecki 1 (1)
Kamil Osiecki COO Ideamotive



Chcesz zbudować produkt cyfrowy w JavaScripcie?

Porozmawiaj z naszym doradcą biznesowym. Przeanalizujemy Twoje wymagania, ułożymy plan rozwoju produktu i zbierzemy zespół programistów klasy A.

Spis treści

      00 Stan JavaScriptu w 2022 roku [INFOGRAFIKA]

      JavaScript in 2022

       

      Udostępnij infografikę w mediach społecznościowych

      01 Czym jest JavaScript?

      Pewnie obiło Ci się o uszy, że „JavaScript jest wszędzie”. Gdzie dokładnie?  

      Według Web3Techs: na ponad 96% wszystkich stron. Google, LinkedIn, Yahoo, YouTube, eBay, Amazon, gdzie nie spojrzeć. JavaScript jest wszędzie. 

      JavaScript stworzył w 1995 roku Brendan Eich. To język skryptowy do budowy dynamicznych treści na stronach i zarządzania nimi: multimediów, interaktywnych formularzy, animacji, pokazów zdjęć, kalendarzy, podpowiedzi autouzupełniania i wielu innych.

      JS to jedna z trzech podstawowych technologii front-endu, obok HTML i CSS. HTML to język znaczników, który odpowiada za strukturę strony, CSS nadaje treści HTML style, a JavaScript tworzy dynamiczne, interaktywne elementy strony i nimi steruje.

      Kto stworzył JavaScript?

      Brendan Eich (rocznik 1961) to amerykański informatyk, inżynier oprogramowania i prelegent. W 1995 roku dołączył do Netscape Communications i stworzył tam język dla przeglądarki. Wzorował go na składni i bibliotece standardowej Javy, a nazwy obiektów odpowiadały klasom Javy. 

      W 1998 roku Eich współtworzył projekt Mozilla, z którego wyrosła Mozilla Foundation, a później Mozilla Corporation. Po odejściu z Mozilli Eich założył kolejną firmę, Brave Software, która rozwija przeglądarkę nastawioną na prywatność, połączoną z platformą reklamy cyfrowej opartą na blockchainie.

      Czy JavaScript jest językiem programowania?

      Tak! Jak sama nazwa wskazuje, JavaScript to język skryptowy. Języki skryptowe tradycyjnie wykonuje linia po linii interpreter, czyli program, który bezpośrednio realizuje zapisane instrukcje. Inaczej niż języki kompilowane, takie jak C++, które kompilator musi najpierw przetłumaczyć na kod binarny. 

      Obecnie JS można też uruchamiać z kompilatorem just-in-time. Kompiluje on kod w locie i zapisuje wynik w pamięci podręcznej, aby przyspieszyć kolejne uruchomienia. JavaScript pozostaje jednak językiem skryptowym.

      Jako język programowania JavaScript jest: 

      • Wysokopoziomowy - języki wysokopoziomowe przypominają języki naturalne lub notację matematyczną, co upraszcza programowanie, w tym aktualizacje i rozbudowę kodu.
      • Dynamiczny - JS pozwala zmieniać kod w trakcie działania programu, więc nowe funkcje dodaje się do aplikacji szybko i sprawnie.
      • Oparty na prototypach - struktura JavaScriptu opiera się na obiektach prototypowych, które można klonować i wykorzystywać jako szablony do budowy nowych obiektów. Prototypy pozwalają też budować powiązania między obiektami w JS. Kopiowanie i modyfikowanie obiektów jest bardziej bezpośrednie niż w językach opartych na klasach, takich jak Java, co upraszcza pisanie kodu i odciąża programistę.
      • Wieloparadygmatowy - JS obsługuje programowanie sterowane zdarzeniami, funkcyjne i imperatywne. Daje to elastyczność: oprogramowanie można tworzyć na różne sposoby. 

      Czy JavaScript jest open source?

      Open source dotyczy oprogramowania, a JS jest językiem programowania, więc nie, JS nie jest open source. Jest jednak otwartym standardem zgodnym ze specyfikacją ECMAScript. Każdy może z niej skorzystać, aby stworzyć własną implementację. 

      Żeby JS dał jakikolwiek wynik, potrzebny jest silnik interpretujący, a każdy z nich ma własną licencję. Na przykład V8 od Google, Hermes od Facebooka i Rhino od Mozilli są open source. Z kolei Jerryscript ma licencję Apache.

      Różnica między biblioteką a frameworkiem JavaScript

      Bez interpretera JS nie da żadnego wyniku; frameworki i biblioteki są opcjonalne, choć bardzo zalecane. To gotowe komponenty, dzięki którym Twój zespół JavaScript szybciej napisze solidny i wydajny kod. Zyskuje na tym też Twój biznes: kod jest mniejszy i prostszy, a projekt szybciej trafia na produkcję. 

      Czasem, jak w przypadku Reacta, trudno jednoznacznie stwierdzić, czy dany zasób jest frameworkiem, czy biblioteką. W teorii oba pojęcia są jednak odrębne.

      The difference between JavaScript library and framework (2)

      Framework

      Framework to platforma programistyczna, na której buduje się aplikację. Przypomina plan domu: trzeba go uzupełnić o szczegóły, zanim ruszy budowa. 

      Framework ma gotowy kod klas, procesów i funkcji, ale dopiero programista dopisuje konkrety, żeby powstał kompletny program. 

      Popularne frameworki JS to Angular, Bootstrap i Vue.js.

      Przejdź do tej sekcji, aby dowiedzieć się więcej o frameworkach JS. 

      Biblioteka

      Biblioteka, podobnie jak framework, to kod wielokrotnego użytku. Zwykle jednak odpowiada za jedną konkretną funkcję lub komponent i zostawia programiście więcej swobody w układaniu struktury kodu. Wracając do metafory domu: biblioteki to gotowe meble i sprzęty, które dobieramy do wnętrza. 

      Główna różnica między biblioteką a frameworkiem polega na tym, że biblioteka zawiera fragmenty gotowego kodu, które programista musi jeszcze ułożyć w proces. Frameworki natomiast odpowiadają za prowadzenie procesów. Do tego jeden framework może korzystać z wielu bibliotek.

      Bibliotek JS są dziesiątki, a listy popularności otwierają DOJO, jQuery i React. 

      Choć większość programistów JavaScript polega na konkretnych frameworkach i bibliotekach, część z nich buduje aplikacje w tak zwanym „Vanilla JavaScript”, czyli czystym kodzie JS bez dodatkowych zasobów. Takie podejście zdarza się jednak rzadko.

      Jak działa JavaScript?

      JavaScript działa przede wszystkim po stronie klienta, czyli na urządzeniach użytkownika połączonych z siecią: laptopach, smartfonach, komputerach i innych. 

      Skrypty wykonują się wtedy bezpośrednio w przeglądarce, więc przetwarzanie jest szybsze, a reakcja na działania użytkownika natychmiastowa. Dlatego ten model wybiera się do dynamicznych, interaktywnych treści i obsługi interakcji z użytkownikiem.

      Rozszerzona wersja JS działa też po stronie serwera, z dostępem do plików, baz danych i serwerów. Kod JS pisze się wtedy podobnie jak w C, Javie czy dowolnym innym języku serwerowym.

      JavaScript po stronie serwera może obsługiwać logowanie, zarządzać danymi osobowymi i preferencjami oraz pobierać konkretne pliki lub dane na żądanie użytkownika. NodeJS to najczęściej używane środowisko do wykonywania kodu JavaScript poza przeglądarką.

      Zobacz też sekcję Najpopularniejsze frameworki JavaScript.

      Obecnie JS jest jedynym powszechnie uznanym językiem po stronie klienta dla przeglądarek, poza WebAssembly, które należy raczej traktować jako technologię uzupełniającą. Alternatywne rozwiązania, takie jak aplety Javy, Silverlight czy ActiveX, zostały już wycofane. 

      Jaka jest różnica między Javą a JavaScriptem?

      Widzieliśmy to zbyt wiele razy: ogłoszenie o pracę dla specjalisty JavaScript z nagłówkiem „Java Developer”. Kilka lat temu mylenie tych dwóch języków było tak powszechne, że stało się anegdotą. Dziś to chyba już przeszłość. Te dwa języki różnią się niemal wszystkim. Gdyby jednak Tobie (albo Twojemu działowi HR) przydało się krótkie przypomnienie, oto podstawowe różnice między Javą a JS:

      Javajava JavaScriptjavascript-online-logo-for-website-0
      Stworzona przez Jamesa Goslinga w Sun Microsystems, wydana w 1995 roku. Stworzony przez Brendana Eicha z Netscape, wydany w 1995 roku.
      To język programowania ogólnego przeznaczenia oparty na składni w stylu C. To język skryptowy dla stron internetowych, także oparty na składni w stylu C.
      Java wymaga kompilacji kodu, aby sprawdzić typy danych. JS może działać bez kompilatorów, bo typy danych sprawdzane są dynamicznie.
      Java jest językiem opartym na klasach. JS jest oparty na prototypach.
      Javę uruchomisz w każdym systemie operacyjnym z maszyną wirtualną Javy. JavaScript działa zwykle w przeglądarce i współpracuje z CSS i HTML, ale można go też uruchamiać w środowiskach uruchomieniowych poza przeglądarką.
      Jako język ogólnego przeznaczenia Java pozwala tworzyć aplikacje dowolnego typu. Ma jednak swoje preferowane zastosowania. JS służy głównie do budowy aplikacji webowych, a jego podstawowym celem jest tworzenie dynamicznych, interaktywnych stron, aplikacji webowych i mobilnych oraz rozbudowanych interfejsów graficznych. Nie ogranicza się jednak tylko do tego.

      Co możesz zbudować w JavaScripcie?

      Pierwotnie JavaScript pomyślano jako sposób na dodanie interaktywności do statycznych stron w przeglądarce. Choć dziś nadal służy głównie do wzbogacania stron o animowane, żywe elementy, jego możliwości obejmują też tworzenie:

      • Solidnych aplikacji webowych i serwerowych
      • Efektownych prezentacji biznesowych
      • Interaktywnych platform growych
      • Wielofunkcyjnych aplikacji mobilnych
      • Aplikacji na urządzenia smart 


      Po szczegóły
      przejdź do kolejnego rozdziału

      Czym JavaScript różni się od TypeScriptu?

      Jeśli masz już jakieś pojęcie o JavaScripcie, pewnie nie jest Ci obcy TypeScript. To nadzbiór JS: nowoczesny język programowania, który rozwija i utrzymuje Microsoft. Udostępniono go publicznie w 2012 roku jako narzędzie do tworzenia dużych aplikacji w JS (oficjalne hasło: „JavaScript, który się skaluje”). TypeScript upraszcza kod JavaScript, żeby łatwiej go było czytać i debugować, a przy tym rozszerza możliwości JS.

      Zobacz też: JavaScript a TypeScript

      02 Do czego wykorzystuje się JavaScript?

      We wstępie omówiliśmy już część kluczowych zastosowań JavaScriptu. Tutaj dodamy nieco szczegółów o każdym z nich.

      Dodawanie interaktywnych elementów strony

      JavaScript powstał po to, żeby tworzyć dynamiczne treści na stronach i nimi sterować, i to nadal jego główne zastosowanie. Zdecydowana większość programistów używa JS, aby wzbogacić strony internetowe o interaktywne funkcje, takie jak:

      • dynamiczne formularze
      • animowana grafika
      • podpowiedzi autouzupełniania
      • pokazy zdjęć

      Gdybyśmy powiedzieli, że każdy używa JS na swojej stronie, nie byłaby to wielka przesada. JS napędza ponad 90% wszystkich stron na świecie, w tym Microsoftu, Facebooka, Walmartu, Ubera, PayPala, Google'a, Quory i LinkedIna, a także miliony innych.

      image26

      Dzięki JavaScriptowi możesz przespacerować się po najbardziej ikonicznych witrynach sklepowych świata, nie ruszając się z kanapy

      Tworzenie aplikacji webowych i mobilnych

      Drugie najpopularniejsze zastosowanie JavaScriptu to aplikacje webowe i mobilne. Poza sprawdzonymi frameworkami webowymi, takimi jak Vue.js, Angular, React czy Ember.js, JS daje programistom zestawy narzędzi mobile-first: React Native, Ionic, jQuery czy PhoneGap. Aplikację mobilną robi się z nimi szybko i tanio. 

      JS dobrze nadaje się do aplikacji webowych i mobilnych także dlatego, że mocno stawia na UX/UI i dopracowany design. Efekt to interfejsy, które się wyróżniają i są dostępne. Do tego JS wspiera programowanie wieloplatformowe: ten sam kod programiści wdrożą na wielu platformach i systemach.

      Renderowanie grafiki 3D

      Elementy 3D dodają stronom i aplikacjom głębi: budują poczucie realizmu i mocniej angażują użytkowników w Twój produkt. Żeby dały pożądany efekt, trzeba je jednak wdrożyć umiejętnie. 

      Nowoczesny JS ma wiele bibliotek 3D, dzięki którym programiści łatwo osadzają w kodzie najnowsze efekty i budują zachwycające interfejsy. Nie muszą tworzyć efektów 3D od zera, tylko pracują na gotowym kodzie, co upraszcza i przyspiesza pracę. Lista silników 3D dla JavaScriptu nie ma końca, a stawkę prowadzą Three.js i Babylon.js.

      image22

      Próbkę zapierających dech możliwości 3D w Three.js zobaczysz na firmowej stronie FACC

      image18

      Albo wybierz się na wirtualną wycieczkę po Cloud City od Google

      Budowa serwerów webowych

      NodeJS, wieloplatformowe środowisko uruchomieniowe JavaScriptu, pozwala budować skalowalne aplikacje sieciowe po stronie serwera i serwery HTTP, które dostarczają treści użytkownikom. Skaluje się łatwo: do działającego systemu dokłada się kolejne węzły. Słynie też z wydajności i sprawnego wykonywania kodu, bo ma architekturę sterowaną zdarzeniami i obsługuje wiele żądań naraz. 

      Do tego Node.js łatwo rozszerzyć, więc Twoi programiści dostosują i rozbudują kod, jak trzeba. Razem z możliwościami full-stack czyni to z niego dobry wybór do budowy serwerów webowych.

      Połączenie JavaScriptu i IoT

      Internet rzeczy i JavaScript pasują do siebie z kilku powodów. Przede wszystkim JS wspiera programowanie wieloplatformowe, dzięki czemu można go używać z urządzeniami połączonymi z siecią. Jako technologia sterowana zdarzeniami JS pozwala czujnikom i sprzętowi IoT reagować na dane w chwili ich powstania; nie obciąża przy tym pamięci i nie zmusza użytkownika do jej porządkowania. 

      Poza tym JavaScript jest zgodny z szeroką gamą sprzętowych rozwiązań IoT, w tym z Espruino, Raspberry Pi i Arduino. Programiści pracujący z IoT korzystają też z bibliotek, frameworków i pakietów, które ułatwiają tworzenie solidnych rozwiązań IoT (np. Johnny-five, Cylon.js, IoTjs itd., wszystkie zaprojektowane specjalnie pod IoT). Platformy i aplikacje IoT na JS budują między innymi IBM, Intel, Google, Microsoft i Salesforce.

      Tworzenie gier w JavaScripcie

      Wszechstronny JS nadaje się też do gier: kod napisany w JavaScripcie renderuje się na elemencie canvas w HTML5. Działa na wielu platformach i daje programistom bogaty wybór frameworków i bibliotek do gier webowych i mobilnych. Część z nich, jak Three.js, można wykorzystać także do innych celów, na przykład do projektowania grafiki 3D. 

      Trzeba jednak przyznać, że gry w JS są na razie raczej krótkie i proste, ze stosunkowo nieskomplikowanym sterowaniem. W dużej mierze wynika to z ograniczeń przeglądarek. Wraz z rozwojem technologii przeglądarkowych rola JavaScriptu w grach będzie więc prawdopodobnie rosła.

      image10

      CrossCode, RPG 2D w stylu retro, to gra zbudowana w całości w JS

      Wykorzystanie JavaScriptu w blockchainie

      Dzięki asynchronicznemu, równoległemu modelowi programowania JavaScript obsługuje tysiące równoczesnych transakcji, typowych dla wdrożeń blockchainowych. Programiści blockchain korzystają głównie z javascriptowej biblioteki Ethereum Web3.js, żeby łączyć się z innymi węzłami Ethereum i inteligentnymi kontraktami przez HTTP, IPC lub WebSocket. Często sięgają po ten język także przy pracy z Hyperledger Fabric, solidnym frameworkiem do bezpiecznych, przejrzystych i zweryfikowanych usług blockchainowych. JavaScript ma też bogate zasoby do operacji kryptograficznych w projektach czysto kryptowalutowych.

      Uczenie maszynowe a JavaScript

      Choć wydaje się to nietypowym wyborem, JavaScript jest często wykorzystywany w projektach AI i uczenia maszynowego, ramię w ramię z Pythonem. Ponieważ silniki deep learningu i przetwarzania języka naturalnego coraz częściej przenoszą się z serwera do przeglądarki, przed programistami JS otwierają się nowe możliwości. 

      Przeglądarka ma dostęp do bogatych, aktualnych zbiorów danych, więc świetnie nadaje się do wdrożeń deep learningu. Stale rosnący ekosystem JS daje narzędzia, żeby przenieść inteligencję maszynową na wiele platform i urządzeń: taniej niż na serwerze, bez instalacji i z możliwością uruchamiania modeli offline.

      Zobacz też Biblioteki uczenia maszynowego w JavaScripcie

      Jeśli zamierzasz zatrudnić ekspertów JavaScript, musisz wziąć pod uwagę jedną kluczową rzecz. Frameworki.

      Frameworki mają znaczenie, bo bardzo się od siebie różnią. Większość programistów JavaScript pracuje z 2-3 frameworkami spośród ponad 20 dostępnych na rynku, a nauczenie się kolejnego to nie spacerek.

      Jeśli więc polujesz na idealnego kandydata do swojego wdrożenia, radzimy poznać kilka wiodących frameworków JS. Inaczej możesz zatrudnić znakomitego inżyniera JS, który nie zna narzędzi potrzebnych do sprawnej realizacji Twojego projektu.

      Czym jest „vanilla” JavaScript?

      Zanim zagłębimy się w konkretne frameworki, zajmijmy się „vanilla” JS. Mówiąc krótko, termin vanilla oznacza czysty, nierozszerzony JavaScript, bez żadnych bibliotek i frameworków. 

      Choć znajomość vanilla JS może mocno wpłynąć na szybkość i efektywność pracy z frameworkami, nie jest obowiązkowa.

      Który framework JavaScript wybrać do swojego projektu?

      Do wyboru jest ponad dwadzieścia frameworków JavaScript, z których większość usprawnia wdrożenia po stronie klienta, a część wspiera programowanie w JS na backendzie.

      Nie radzimy wybierać frameworka tylko dlatego, że Twój zespół akurat go zna albo programiści dobrze się w nim czują. O narzędziach powinien decydować Twój pomysł lub produkt, nie odwrotnie. 

      Zbierz więc zespół zdalnych ekspertów biegłych we frameworku, który odpowiada Twoim potrzebom. A jeśli to problem, napisz do nas. Wskażemy Ci właściwą osobę z właściwymi umiejętnościami ;)

      image26-1

      Oto jak czołowe frameworki JavaScript wypadają wśród web developerów

      Żeby ułatwić Ci wybór frameworka do kolejnego projektu, przygotowaliśmy małe porównanie. Poznasz najważniejsze fakty o każdym z nich: zastosowania, funkcje oraz plusy i minusy. 

      Jeśli zgłębianie frameworków Cię nie porywa, możesz przejść od razu do tabeli podsumowującej i szybko je porównać.

      Angular

      Najlepszy do: skalowalnych aplikacji jednostronicowych (SPA)

      Zanim przejdziemy do szczegółów, rzućmy okiem na historię Angulara. AngularJS powstał w 2009 roku jako framework oparty na JavaScripcie; inżynierowie Google chcieli nim uprościć tworzenie aplikacji webowych. W 2014 roku Google przepisało go w TypeScripcie i opublikowało jako Angular, co jest dziś zbiorczą nazwą wersji 2 i wyższych. 

      Różnice między pierwotnym AngularJS a późniejszymi wersjami Angulara są ogromne. Framework nie tylko przepisano w TypeScripcie, ale też zmieniono całą jego architekturę: z modelu model-widok-kontroler na komponentową, w której każdy element interfejsu jest osobnym komponentem w hierarchii. 

      Nowy Angular zaprojektowano przede wszystkim jako kompleksowy framework do tworzenia aplikacji jednostronicowych (SPA). SPA to strony, które komunikują się z przeglądarką i nie wymagają przeładowania w trakcie korzystania. Przykłady SPA to Twitter czy Gmail. Do tego Angular v2 powstał z myślą o podejściu mobile-first: aplikacje mobilne tworzy się w nim sprawnie i niezależnie od platformy

      Aktualizacja podzieliła web developerów: zmiany były tak duże, że pierwotna i kolejne wersje są całkowicie niekompatybilne. Odkąd pojawił się Angular v2 i jego następcy, programistów AngularJS stopniowo ubywa. Część inżynierów wciąż jednak trzyma się pierwotnego frameworka i niechętnie przechodzi na nowsze wersje, bo wymagają one zupełnie nowych umiejętności. 

      Dziś Angular wyróżnia się na tle innych frameworków dzięki architekturze, która pozwala budować zaawansowane i wydajne interfejsy o bogatych możliwościach interakcji. Samodzielne komponenty można wielokrotnie wykorzystywać w różnych częściach aplikacji, a ich rozdzielenie ułatwia utrzymanie kodu. TypeScript to kolejna cecha Angulara: pomaga utrzymać czysty i wolny od błędów kod, zwłaszcza w aplikacjach dla dużych firm. 

      AngularJS miał kłopoty z wydajnością; jego następcy lepiej wykorzystują procesor, więc aplikacje działają szybciej. Najnowsze wersje mają też różne optymalizacje, które skracają czas ładowania.

      Angular ma ogromną liczbę repozytoriów na GitHubie (ponad 650 tysięcy!) i przeszło 2 miliony commitów. Programuje w nim około jedna trzecia web developerów, czyli spore grono. Ciekawe jednak, że tylko połowa z nich lubi pracę z Angularem; druga połowa boi się jego złożoności, stromej krzywej uczenia i rozdętej architektury

      Zalety:

      • Prowadzony i utrzymywany przez Google
      • Ogromna, choć rozdrobniona społeczność
      • Kod łatwy do ponownego użycia i utrzymania
      • Wsparcie dla podejścia mobile-first
      • Skalowalne i niezawodne aplikacje
      • Niezależny od platformy 
      • Wysoka wydajność i szybkie ładowanie

      Wady:

      • Trudny do nauki
      • Wyraźne różnice między kolejnymi wersjami
      • Wymaga znajomości TypeScriptu 
      • Rozwlekły, złożony kod
      • Duży rozmiar aplikacji 
      • Ograniczone wsparcie SEO
      • Nieefektywny przy małych, lekkich aplikacjach

      Dojrzałość: Wersja 2 opublikowana w 2014 roku, najnowsza, dziewiąta aktualizacja wydana w lutym 2020 roku. Angular (wszystkie wersje) jest drugim najpopularniejszym frameworkiem webowym, z ponad 653 tysiącami repozytoriów na GitHubie. Mimo to jest też jednym z najmniej lubianych i najbardziej odstraszających narzędzi programistycznych.

      Używają go: BMW (kalkulator cen, wyszukiwarka dealerów), Google (strony docelowe Marketing Platform, Digital Garage i innych projektów), Forbes (strona), Microsoft (strona Office Home), PayPal (elementy interfejsu), Crunchbase (strona); więcej firm znajdziesz tutaj.

      Backbone.js

      Najlepszy do: prostych SPA z autorskimi interfejsami

      Pierwszą wersję Backbone.js opublikowano w 2010 roku, aby dać programistom „swobodę projektowania całego doświadczenia w ich aplikacji webowej”. Ten framework (czasem klasyfikowany jako biblioteka) wyróżnia się prostotą i łagodną krzywą uczenia. To darmowe i otwartoźródłowe narzędzie ma interfejs RESTful JSON i opiera się na paradygmacie aplikacji model–view–presenter (MVP)

      Cechą charakterystyczną Backbone.js jest to, że wszystkie funkcje po stronie serwera przechodzą przez API. Dzięki temu programiści mogą odchudzić kod, a złożone funkcje webowe łatwiej dowieźć. Backbone daje minimalny zestaw modeli, kolekcji i interfejsów użytkownika, a wybór rozszerzeń zostawia programiście. Ma też przejrzystą, uporządkowaną strukturę, która sprzyja eleganckiemu, czytelnemu kodowi.

      Programiści pracujący z Backbone cenią jego proste moduły i uporządkowany format, ale narzędzie nie jest zbyt popularne. Mniej niż 8% web developerów zna ten framework, który ma 24 tysiące repozytoriów na GitHubie.

      Zalety: 

      • Lekka, prosta i bardzo zwarta struktura
      • Daje zestaw podstawowych klocków
      • Pozwala elastycznie budować spersonalizowane aplikacje 
      • Prowadzi do schludnego, łatwego w utrzymaniu kodu
      • Jest dość łatwy do nauki

      Wady:

      • Stosunkowo niewiele materiałów i skromny kod źródłowy
      • Tworzenie dużych, złożonych aplikacji wymaga czasu i researchu 

      Dojrzałość: Pierwsza publikacja w 2010 roku. Obecnie ma ponad 24 tysiące repozytoriów na GitHubie i przeszło 576 tysięcy commitów; korzysta z niego około 8% web developerów. 

      Używają go: aplikacja Trello, strona Ubera, kalendarz Basecamp, Airbnb (aplikacja mobilna), Verizon

      Ember.js

      Najlepszy do: rozbudowanych aplikacji firmowych w rodzaju dashboardów

      Ember.js, dużo mniej popularny niż Angular czy React, to otwartoźródłowy framework JavaScript w architekturze model-widok-kontroler (MVC). Pierwszą wersję wydał w 2011 roku Yehuda Katz. Framework ma dawać kompletny zestaw narzędzi do „ambitnych” (czyli solidnych i skalowalnych) aplikacji webowych.

      Jako framework MVC Ember dzieli logikę na trzy osobne, ale powiązane warstwy. Model danych jest oddzielony od kontrolera i widoku, więc zespoły mogą pracować równolegle i asynchronicznie: jeden nad wyglądem interfejsu, drugi nad logiką biznesową. Efekt to szybsze wytwarzanie oprogramowania i proste utrzymanie kodu

      Ember obsługuje też dwukierunkowe wiązanie danych: każda zmiana w modelu jest natychmiast widoczna w widoku i odwrotnie. Ma własny interfejs wiersza poleceń do szybkiego tworzenia, budowania i testowania kodu oraz inspektor do debugowania aplikacji. Dużą zaletą Embera jest ustandaryzowana struktura: praca idzie sprawniej, a aplikacje są stabilne i wydajne.

      Z Embera regularnie korzysta tylko około 8% web developerów, więc to framework niszowy. Mimo to używa go wiele znanych firm, co potwierdza jego wartość przy dużych aplikacjach webowych.

      Zalety: 

      • Mocne szablony do tworzenia efektownych interfejsów
      • Własne CLI ze standardową strukturą plików i katalogów
      • Dwukierunkowe wiązanie danych
      • Wsparcie dla wstecznej kompatybilności
      • Narzędzie inspektora ułatwiające debugowanie

      Wady:

      • Malejąca popularność w ostatnich latach
      • Niewiele miejsca na personalizację
      • Nie sprawdza się w małych projektach

      Dojrzałość: Pierwsze wydanie w grudniu 2011 roku, pierwsze stabilne w 2015. 

      Używają go: Apple Music, Adidas Runtastic, Groupon, TED, Microsoft, Zendesk

      React

      Najlepszy do: wydajnych, interaktywnych stron i wieloplatformowych aplikacji mobilnych

      Według oficjalnej strony ReactJS to biblioteka. Jest jednak tak potężna i rozbudowana, że często zalicza się ją do frameworków (robi tak nawet Stack Overflow). Zróbmy więc tak samo.

      React, wieloletni ulubieniec branży, daje mnóstwo powodów, żeby go pokochać. To dziecko Facebooka pojawiło się w 2013 roku i od razu wystrzeliło jako potężne narzędzie do dużych, bardzo dynamicznych aplikacji. Jako framework deklaratywny React daje czytelny, skalowalny kod, który łatwo debugować i utrzymywać. Zasada „naucz się raz, pisz wszędzie” oznacza, że pod różne urządzenia i systemy operacyjne programiści prawie nic nie przepisują.

      Siła Reacta bierze się z oddzielenia warstwy danych od warstwy prezentacji, wirtualnego DOM i modułowych komponentów wielokrotnego użytku. Te wbudowane cechy oszczędzają czas i upraszczają aktualizacje, a także pozwalają szybciej odświeżać widok w aplikacjach webowych po każdej zmianie. Do tego React nie jest przywiązany do konkretnego stacku, więc można go łączyć z innymi frameworkami

      Co trzeci programista zna Reacta, a ponad 70% programistów JS pracowało z tym narzędziem i chce z niego korzystać w przyszłości. Ogromną popularność Reacta widać po oszałamiającej liczbie repozytoriów na GitHubie: ponad 1,4 miliona!

      Zalety: 

      • Najpopularniejszy framework JS w ogóle
      • Solidna dokumentacja i mnóstwo materiałów
      • Ogromna pula programistów
      • Prowadzony przez programistów Facebooka
      • Komponenty kodu wielokrotnego użytku 
      • Łatwa integracja z innymi frameworkami i bibliotekami
      • Nieustanny rozwój narzędzia
      • Szybkie i sprawne wytwarzanie oprogramowania

      Wady:

      • React wymaga rozbudowanych narzędzi do budowania
      • Nie jest pełnym frameworkiem, więc mogą pojawić się niekompatybilności
      • Może być zbyt rozbudowany do mniejszych projektów
      • Może być trudny do ogarnięcia dla juniorów

      Dojrzałość: Od premiery w 2013 roku React stał się najczęściej używanym i najchętniej wybieranym frameworkiem JS; lubi go 75% programistów.

      Używają go: Slack, Twitter, Netflix (platforma Gibbon), Facebook, Khan Academy, CodeAcademy, Dropbox, Yahoo i wiele innych

      image2-1

      React jest drugim najpopularniejszym zestawem narzędzi webowych

      Svelte

      Najlepszy do: aktualizacji lub wymiany starszych aplikacji webowych oraz małych i szybkich stron i aplikacji

      Svelte, komponentowy framework JS, przypomina nieco Reacta i Vue. Działa jednak na etapie budowania: własnym kompilatorem zamienia komponenty w kod imperatywny, który aktualizuje DOM. Efekt to zwinny, wydajny kod, dzięki któremu aplikacje webowe ładują się niesamowicie szybko. 

      Svelte jest też reaktywny: gdy zmienia się stan aplikacji, widok aktualizuje się sam. Nie ma wirtualnego DOM ani kodu szablonowego (dużych fragmentów, które powtarzają się w różnych miejscach i rozdymają aplikację), więc składnia jest prosta i zwarta. Praca idzie szybciej, a aplikacja lub strona działa wydajniej

      Framework (albo kompilator, jak wolą niektórzy) trzyma się blisko HTML-a, przez co jest zrozumiały i przyjazny. Do tego style ograniczone do komponentu sprawiają, że własna składnia CSS i dodatkowe rozszerzenia są zbędne. 

      Zalety: 

      • Rozwiązuje część problemów wcześniejszych frameworków
      • Wyższa wydajność
      • Czytelna i zwarta składnia 
      • Szybki do opanowania dla początkujących programistów
      • Bardzo pozytywne opinie społeczności technologicznej
      • Pozwala szybko wypuścić proste strony i aplikacje

      Wady:

      • Stosunkowo nowe narzędzie; zna je mniej niż 7% web developerów
      • Brak narzędzi i komponentów zewnętrznych może wymagać własnego kodu
      • Jak dotąd niewiele wdrożeń w biznesie

      Dojrzałość: Wydany po raz pierwszy w 2016 roku, to jeden z najnowszych frameworków JS. Zaledwie 8 tysięcy repozytoriów na GitHubie, ze 108 tysiącami commitów.

      Używają go: Bloomberg, Nesta, Spotify, SEMrush, New York Times

      Vue.js

      Najlepszy do: prostych, lekkich aplikacji i prototypów

      Vue.js to otwartoźródłowy, progresywny framework JavaScript stworzony przez Evana You w 2014 roku, aby uprościć i uporządkować tworzenie interfejsów. „Progresywny” oznacza, że Vue jest elastyczny wobec potrzeb programisty i łatwo integruje się z innymi bibliotekami oraz istniejącymi projektami. 

      Framework stawia na wydajność i elastyczność. Oparta na HTML-u składnia szablonów i proste stylowanie sprawiają, że uczy się go szybciej niż innych frameworków JS. Rozszerzenia narzędzi deweloperskich w przeglądarce i ponowne użycie kodu upraszczają i przyspieszają pracę. Vue obsługuje też wiele wzorców projektowych i, podobnie jak React, korzysta z wirtualnego DOM, więc szybko aktualizuje widok w aplikacjach webowych.

      Choć w Vue.js pracuje obecnie tylko 15% programistów, należy on do trzech najbardziej lubianych frameworków. Trzech na czterech programistów wymienia go wśród ulubionych.

      Zalety: 

      • Mały i zwarty
      • Pozytywnie wpływa na SEO i UX
      • Prosta, zrozumiała składnia
      • Obszerna dokumentacja 
      • Szybkie programowanie
      • Elastyczna struktura komponentów 
      • Wysoka wydajność dzięki wirtualnemu DOM

      Wady:

      • Umiarkowana wielkość społeczności 
      • Bariera językowa (większość dokumentacji dostępna po chińsku)
      • Słabiej sprawdza się w dużych projektach

      Dojrzałość: Wydany w 2014 roku, przez sześć lat rósł błyskawicznie. Ponad 22 tysiące repozytoriów na GitHubie i ponad 109 tysięcy commitów.

      Używają go: Netflix (mniejsze, dedykowane aplikacje), Adobe (portfolio artystów), Grammarly (edytor tekstu), Gitlab (strona), Wizzair (wyszukiwarka lotów), Buzzfeed (podstrony)

      Zobacz bezpośrednie porównanie Vue.js i Reacta

      Jeśli szukasz głębszego porównania Vue.js i Reacta, zajrzyj do naszego wpisu na blogu, w którym szczegółowo analizujemy oba popularne frameworki JS.

      Node.js

      Najlepszy do: skalowalnych aplikacji sieciowych czasu rzeczywistego

      Nie sposób mówić o JavaScripcie bez wspomnienia o Node.js, który zasługuje na osobną kategorię. Nie jest ani frameworkiem, ani biblioteką: to środowisko uruchomieniowe JS, które wykonuje kod poza przeglądarką, po stronie serwera.

      Narzędzie powstało w 2009 roku i nie było pierwszym serwerowym środowiskiem JS. Mimo to szybko zyskało popularność, a dziś zajmuje pierwsze miejsce jako najpopularniejsza technologia web developmentu

      Node.js korzysta z elastycznego modelu programowania sterowanego zdarzeniami, w którym przebiegiem programu sterują zdarzenia, na przykład działania użytkownika. Kod łatwo się modyfikuje i aktualizuje, a programowanie jest pod pewnymi względami prostsze

      Model zdarzeniowy daje też programistom dużą niezależność i zwinność: funkcje wdrażają od zera, dokładnie według specyfikacji. Dla mniej doświadczonych może to być jednak przeszkoda. Bez wskazówek i standardów pracują więcej i wolniej.

      Kolejna duża korzyść z wykonywania kodu po stronie serwera to wyższa wydajność aplikacji. Silnik V8 Chrome'a, który kompiluje kod JS, pracuje bardzo szybko, a asynchroniczny model API pozwala obsługiwać wiele zdarzeń naraz. Te korzyści nie dotyczą jednak aplikacji z ciężkimi obliczeniami. 

      Node.js ma ponad 263 tysiące repozytoriów na GitHubie, zdrowy ekosystem i wsparcie dużych firm. Niemal 50% web developerów używa go w projektach, a około trzy czwarte z nich uwielbia z nim pracować. 

      Zalety: 

      • Solidny stos technologiczny
      • Aktywna i żywa społeczność
      • Wsparcie wieloplatformowe
      • Swoboda w budowaniu aplikacji webowych
      • Wyższa wydajność aplikacji

      Wady:

      • Częste zmiany API, które psują stabilność
      • Nie nadaje się do operacji obciążających procesor 
      • Brak standardów i odpowiedniej dokumentacji

      Dojrzałość: Napisany przez Ryana Dahla w 2009 roku, jak dotąd 14 stabilnych wersji. 263 tysiące repozytoriów na GitHubie z ponad milionem commitów. Jedna z najczęściej używanych technologii web developmentu.

      Używają go: PayPal, Capital One, Groupon, IBM, Microsoft, Netflix, SAP, Walmart, GoDaddy

      Backendowe frameworki JavaScript

      Poza Node.js jest kilka serwerowych frameworków JS, które pozwalają wykorzystać kod JavaScript na backendzie. Dwa, na które chcemy zwrócić Twoją uwagę, to Express.js i NestJS.

      Express.js

      Najlepszy do: małych i średnich stron, szybkich prototypów API 

      Express to minimalistyczny, ale potężny framework backendowy dla Node.js, ceniony za prostotę i elastyczność. Od 2010 roku dostępny za darmo na otwartej licencji MIT, służy do budowy aplikacji webowych i mobilnych oraz webowych API. Mimo niewielkich rozmiarów Express obsługuje cały backend, od routingu po komponenty interfejsu.

      Ten lekki framework stawia na proste, produktywne tworzenie aplikacji webowych i szczupły kod. Jest bardzo szybki, a do tego ma mnóstwo wtyczek do rozbudowy

      Express niczego nie narzuca: nie wymusza struktury kodu ani konkretnych komponentów i współpracuje z dowolną technologią front-endową. Może dlatego jest tak popularny wśród programistów. Ponad 71% web developerów korzystało z niego i chętnie zrobi to znowu, a kolejne 12% zamierza się go nauczyć. Po stronie biznesu używają go głównie startupy i MŚP, ale kilka globalnych firm sięga po niego w mniejszych projektach.

      Zalety: 

      • Bardzo elastyczny i rozszerzalny
      • Szybkie działanie
      • Pozbywa się zbędnego kodu
      • Łatwy do nauki dla programistów JS
      • Ma szeroki pakiet funkcji upraszczających pisanie kodu
      • Dobrze udokumentowany, z mnóstwem poradników i kursów

      Wady:

      • Nie nadaje się do dużych, kompletnych aplikacji webowych dla firm
      • Słabe wsparcie bezpieczeństwa

      Dojrzałość: Stworzył go TJ Holowaychuk i wydał w 2010 roku. Najpopularniejszy framework JS na backendzie, z ponad 47 tysiącami repozytoriów na GitHubie. 

      Używają go: IBM, PayPal, Uber, Yandex, Accenture

      NestJS

      Najlepszy do: wydajnych i skalowalnych aplikacji serwerowych

      Na koniec przechodzimy do NestJS (nie mylić z NextJS), kolejnego ulubieńca programistów. Najmłodszy z przedstawionych frameworków powstał w 2017 roku, a stworzył go Kamil Myśliwiec, aby ułatwić tworzenie skalowalnych aplikacji serwerowych.

      NestJS korzysta z nowoczesnego JavaScriptu i TypeScriptu oraz bierze to, co najlepsze, z programowania obiektowego i funkcyjnego. Choć wciąż raczkuje, już skradł serca programistów elastycznością i skalowalnością. To tłumaczy, dlaczego wybierają go dziś głównie firmy technologiczne.

      Narzędzie daje gotową architekturę aplikacji, która ma podnieść produktywność i komfort pracy programistów. Ma na przykład wbudowane narzędzie wiersza poleceń, które automatyzuje zadania i przyspiesza pracę, a w efekcie projekt webowy szybciej trafia na rynek

      Największe wady tego frameworka to pewnie niedojrzałość i mała społeczność. NestJS jest jednak regularnie aktualizowany, a dzięki szczegółowej, zadbanej dokumentacji bardzo łatwo go opanować. Razem z rosnącą liczbą pobrań wróży mu to sukces.

      Zalety: 

      • Najnowsze rozwiązania i technologie
      • Szerokie możliwości dostosowania
      • Przyjazny programistom
      • Kompleksowa dokumentacja
      • Łatwy do nauki
      • Pozwala budować mikroserwisy

      Wady:

      • Mocno wzorowany na Angularze
      • Zgłaszane problemy z debugowaniem
      • Popularny głównie wśród firm technologicznych

      Dojrzałość: Wydany w 2017 roku, co plasuje go wśród najmłodszych backendowych frameworków JS. 8 tysięcy repozytoriów na GitHubie i 35 tysięcy commitów. 

      Używają go: REWE digital, Wizkids, Societe Generale, Komed Health, Harmonize Health

      image23-1

      image18-1

      04 Narzędzia JavaScript

      Poza bogatym zestawem bibliotek i frameworków programiści JavaScript mają też solidny ekosystem narzędzi, dzięki którym szybciej budują produkty webowe. Narzędzia te służą różnym celom, ale łączy je jedno: przyspieszają pisanie kodu i debugowanie, więc praca z JS idzie znacznie sprawniej.

      Debuggery JavaScript

      Czasem błąd tak błahy jak brakujący przecinek kładzie całą stronę lub aplikację. Debugowanie to kluczowy etap każdego projektu JS: bez niego kod nie zadziała tak, jak trzeba. Niestety wyłapywanie i usuwanie błędów, obecnych i potencjalnych, bywa długie i żmudne, i to nie tylko w JavaScripcie. Dlatego doświadczeni, skuteczni programiści korzystają z debuggerów, które automatyzują i usprawniają tę pracę.

      Wszystkie wiodące przeglądarki mają dziś wbudowane debuggery, które pozwalają szybko zweryfikować dane wyjściowe i przeanalizować wadliwy kod. Przykłady to Chrome Developer Tools, Firefox Developer Tools i Safari Develop Menu. Są też samodzielne narzędzia, takie jak debugger, JS Bin czy Postman. Przydają się zwłaszcza wtedy, gdy zespół debuguje wspólnie. Node.js ma własne narzędzie do debugowania, Node.js Inspector, odpowiednie do projektów backendowych.

      Edytory kodu JavaScript

      Edytory kodu są niezbędne w tworzeniu oprogramowania, bo dają środowisko, w którym pisze się, modyfikuje i rozwija kod. W przeciwieństwie do rozbudowanych IDE narzędzia do edycji tekstu zwykle nie zawierają interpreterów i kompilatorów ani nie oferują debugowania i kontroli wersji. Są za to szybkie i przejrzyste, a mają wszystko, czego trzeba, aby sprawnie napisać kod.

      Najlepsze edytory JavaScript to Sublime Text, Bracket i Visual Studio Code. Programiści często wybierają też Atom, Notepad++ i Komodo Edit. Choć wszystkie te edytory znacznie różnią się interfejsem, każdy daje użytkownikom automatyczne formatowanie kodu i podświetlanie składni.

      Walidator JavaScript online

      Jak sama nazwa wskazuje, walidatory JavaScript służą do sprawdzenia nowego kodu JS przed przeładowaniem strony, która go zawiera. Chodzi o to, aby nieprawidłowy kod nie położył stron i aplikacji. Do tego internetowe walidatory JS weryfikują dynamiczne formularze, sprawdzając, czy podano wszystkie dane i czy mają wymagany format.

      Na rynku dostępnych jest wiele walidatorów online. Popularne przykłady to validatejs.org, codebeautify i ValidateJavaScript.

      Biblioteka canvas w JavaScripcie

      W HTML5 element „Canvas” służy do tworzenia grafiki w czasie rzeczywistym za pomocą skryptów. Można go wykorzystać na przykład do rysowania interaktywnych diagramów i wykresów, dodawania własnych animacji czy zestawiania zdjęć.

      Programiści upraszczają te zadania, korzystając z łatwo dostępnych bibliotek canvas, takich jak GoJS, FabricJS, bHive.js i HTML Canvas Library. Dają one interaktywne modele obiektów i bogate funkcje, które pozwalają dynamicznie manipulować grafiką wektorową, tekstem, gradientami, kształtami i animacjami. Rozwiązania webowe zyskują dzięki temu zaawansowane, dopracowane interfejsy.

      Narzędzia do budowania w JavaScripcie

      Programy do automatyzacji budowania ułatwiają tworzenie gotowych aplikacji, automatyzując i usprawniając kompilowanie, testowanie, pakowanie i wdrażanie kodu źródłowego. Pomagają też szybciej generować dokumentację projektu i informacje o wydaniach.

      W kontekście JS narzędzia do budowania dodają szybkości i porządku procesowi wytwarzania oprogramowania, zwłaszcza w dużych, złożonych projektach podzielonych między kilka zespołów. Wykrywają i usuwają sprzeczne zmiany w kodzie, a przy tym podnoszą produktywność i ułatwiają ponowne użycie kodu. Najpopularniejsze narzędzia do budowania w JavaScripcie to Webpack, Grunt, Gulp, Yeoman i Brunch.io.

      Widgety JavaScript

      Kolejny zestaw narzędzi, które skracają czas tworzenia bardzo responsywnych, działających w różnych przeglądarkach aplikacji webowych, to widgety JS: minimalistyczne, samodzielne komponenty, z których każdy robi jedną rzecz. Często grupuje się je w biblioteki, takie jak jQWidgets, DevExtreme, Webix i DHTMLX Suite.

      Jest wiele powodów, aby osadzać widgety JS na stronach i w aplikacjach webowych. Część widgetów optymalizuje czas ładowania strony, zwiększa jej wydajność i poprawia nawigację. Inne automatycznie dostosowują stronę lub aplikację do urządzenia i przeglądarki, żeby działała jak najlepiej. Złożone widgety pozwalają łatwo wdrożyć zaawansowane funkcje, takie jak arkusze kalkulacyjne, filtry, zaawansowaną wizualizację czy manipulację danymi. Atrakcyjne wizualnie widgety pomagają zadbać o najwyższej klasy, spójny wygląd strony.

      Frameworki testowe JavaScript

      Narzędzia testowe JS ułatwiają programistom życie, bo ograniczają żmudne testy ręczne. Pomagają wychwycić luki i błędy w kodzie oraz zadbać o to, żeby oprogramowanie działało spójnie, bezpiecznie i przewidywalnie w różnych warunkach i na różnych platformach.

      Programiści JavaScript upraszczają i automatyzują testy dzięki uznanym frameworkom, takim jak Mocha, Jasmine, Jest, Protractor oraz nowszym, takim jak Tape czy Enzyme.

      Lintery JavaScript

      Lintery również należą do świata testów. Wyłapują błędy stylistyczne i składniowe, więc pomagają utrzymać czytelny kod wysokiej jakości. Najlepsze lintery JavaScript to JSHint, JSLint, Standard JS, Validator pro i ESLint.

      Inne narzędzia JavaScript

      Lista wcale się tu nie kończy. JavaScript słynie z ogromnego, dynamicznie rozwijającego się ekosystemu narzędzi, które towarzyszą programistom na każdym etapie tworzenia aplikacji i stron. Poza wymienionymi wyżej narzędziami przydaje się jeszcze wiele innych, które usprawniają pracę i testowanie. Należą do nich:

      • Generatory kodu JavaScript - programy, które generują kod JS z różnych formatów wejściowych, aby szybciej budować strony.
      • Generatory dokumentacji - oprogramowanie do dokumentacji, które wspiera programistów i użytkowników końcowych, generując dokumentację projektu z plików źródłowych i komentarzy.
      • Bundlery modułów JavaScript - bundlery kompilują różne moduły JavaScript do jednego pliku, który łatwo wykonać w przeglądarce. Dzięki temu upraszczają zarządzanie zależnościami w kodzie i pomagają poprawić wydajność strony lub aplikacji.

      Narzędzia bezpieczeństwa JavaScript - wbudowane i samodzielne narzędzia bezpieczeństwa JS, takie jak RetireJS, Node Security Project czy Dependency-check, które skanują kod JavaScript i weryfikują wszystkie zależności, aby wykryć podatności.

      05 JavaScript a inne technologie

      Wspominaliśmy już (pewnie kilka razy;), że JavaScript nie ma sobie równych pod względem popularności. Jest zresztą wyjątkowy pod wieloma względami. Dynamicznie typowany, interpretowany i wykorzystywany głównie po stronie klienta język skryptowy napędza internet jak żadna inna technologia.

      Mimo tej wyjątkowości spróbujemy porównać JavaScript z dominującymi językami programowania. Skupimy się na kluczowych cechach: szybkości i koszcie wytwarzania oprogramowania, wszechstronności oraz wydajności.

      image14-1

      Jeśli chodzi o popularność, JavaScript jest poza konkurencją

      JavaScript a Python

      JavaScript i Python mają ze sobą sporo wspólnego. Oba są wysokopoziomowe, interpretowane i dynamicznie typowane, więc pozwalają szybko iterować oraz błyskawicznie dodawać i aktualizować funkcje aplikacji. Oba mają też ogromne grono zwolenników dzięki solidnej wydajności, szerokiemu zestawowi narzędzi i bibliotek oraz prostocie. Jeśli chodzi o zastosowania, Python jest językiem ogólnego przeznaczenia, mocno wykorzystywanym w projektach deep learningu, ML, przetwarzania obrazów i analityki danych. Można w nim też zbudować backend aplikacji webowej.

      • Szybkość wytwarzania: remis
      • Koszt wytwarzania: remis
      • Wydajność: remis
      • Wszechstronność: remis
      • Pula programistów: remis
      • Popularność wśród startupów i firm technologicznych: remis
      • Kto wygrywa: Oba idą łeb w łeb we wszystkich kategoriach. 

      JavaScript a PHP

      Choć PHP ma najlepsze lata za sobą, programiści wciąż opierają na nim backend swoich aplikacji webowych. Język nadaje się też do innych zastosowań, ale to web development jest najważniejszy. Dość często PHP i JS działają w tandemie: pierwszy na serwerze, drugi po stronie klienta. 

      Interpretery PHP są zwykle wydajniejsze niż javascriptowe, głównie dzięki dojrzałości. Projekt w PHP bywa też w sumie tańszy niż w JS. Programistów PHP jest ponad 5,5 miliona. To jednak połowa społeczności JS, a grono ekspertów PHP prawdopodobnie powoli się kurczy. 

      • Szybkość wytwarzania: JavaScript
      • Koszt wytwarzania: PHP
      • Wydajność: PHP
      • Wszechstronność: JavaScript
      • Pula programistów: JavaScript
      • Popularność wśród startupów i firm technologicznych: JavaScript
      • Kto wygrywa: JavaScript, dzięki dostępności specjalistów, szybkości wytwarzania i różnorodności zastosowań. W projektach wrażliwych na cenę lepszym wyborem może być jednak PHP. 

      JavaScript a Ruby

      Ruby, język skryptowy ogólnego przeznaczenia, zawdzięcza popularność głównie frameworkowi Ruby on Rails do budowy stron i aplikacji webowych. Mimo to jest też szeroko wykorzystywany do tworzenia zaawansowanych narzędzi programistycznych, takich jak platformy do tworzenia aplikacji mobilnych czy aplikacje do zarządzania pakietami. Ruby bije więc JS pod względem wszechstronności. 

      Główna zaleta tego języka: nastawiono go na „szczęście programisty”, czyli prostotę, produktywność i oszczędność czasu. Pomaga w tym mnóstwo narzędzi, które ułatwiają i przyspieszają pisanie kodu. Sam Ruby nie błyszczy wydajnością aplikacji. Dużo zyskuje jednak dzięki lekkiemu interpreterowi mruby, często używanemu tam, gdzie liczy się wydajność. 

      • Szybkość wytwarzania: Ruby
      • Koszt wytwarzania: remis
      • Wydajność: remis
      • Wszechstronność: Ruby
      • Pula programistów: JavaScript
      • Popularność wśród startupów i firm technologicznych: remis
      • Kto wygrywa: Ruby, właściwie wykorzystany, ma pewną przewagę nad JS w szybkości i wszechstronności. Wciąż jednak sporo mu brakuje, jeśli chodzi o wielkość społeczności.

      image30

      JavaScript a Dart

      Dart, stworzony przez Google, to obiektowy, oparty na klasach język programowania do aplikacji na wiele platform. Choć wciąż uchodzi za niszowy (używa go tylko 4% programistów), w latach 2018-2019 był najszybciej rosnącym językiem na GitHubie. Skok popularności zawdzięcza Flutterowi, zestawowi narzędzi UI od Google do aplikacji wieloplatformowych. Poza Flutterem Darta używa się niewiele.

      • Szybkość wytwarzania: remis
      • Koszt wytwarzania: Dart
      • Wydajność: remis
      • Wszechstronność: JavaScript
      • Pula programistów: JavaScript
      • Popularność wśród startupów i firm technologicznych: JavaScript
      • Kto wygrywa: Oba języki remisują pod względem szybkości wytwarzania i wydajności aplikacji. Dart bywa tańszy. JavaScript bije go jednak zakresem zastosowań oraz wsparciem biznesu i społeczności.

      JavaScript a C++

      C++, stworzony w 1985 roku, to jeden z pierwszych języków programowania. Ma kilka wyraźnych przewag nad JavaScriptem: wszechstronność, niezawodność i szybkość. Pisze się w nim aplikacje desktopowe z interfejsem graficznym, systemy operacyjne, bazy danych, aplikacje dla dużych firm, przeglądarki, kompilatory i biblioteki. C++ jest też powszechny w grach komputerowych. 

      Mimo tych zalet język pojawia się głównie w projektach, które wymagają wysokiej wydajności i bardzo niskich opóźnień. Wynika to ze stromej krzywej uczenia i złożoności, przez które wielu początkujących rezygnuje z prób opanowania tego języka. Znalezienie rzetelnego i doświadczonego programisty C++ zajmuje znacznie więcej czasu niż zatrudnienie zdolnego eksperta JS (albo inżyniera Pythona do projektów obliczeń naukowych). Głównie z tego powodu firmy wybierają C++ tylko wtedy, gdy nie ma alternatywy. 

      • Szybkość wytwarzania: JavaScript
      • Koszt wytwarzania: remis
      • Wydajność: C++
      • Wszechstronność: C++
      • Pula programistów: JavaScript
      • Popularność wśród startupów i firm technologicznych: JavaScript
      • Kto wygrywa: C++ wypada lepiej niż JS pod względem wydajności i zakresu zastosowań. Ustępuje mu jednak w szybkości wytwarzania i nie może marzyć o tak szerokim wsparciu, jakie JavaScript ma zarówno po stronie programistów, jak i biznesu.

      JavaScript a C#

      Microsoft stworzył C# jako konkurencję dla Javy: podstawową technologię dla oprogramowania dużych firm. Kompiluje się do kodu pośredniego (IL), który uruchamia kompilator just-in-time, więc jest znacznie wydajniejszy niż interpretowany JavaScript. Zastosowania ma różne: od aplikacji na Windowsa po zewnętrzne aplikacje webowe. 

      Dzięki Blazorowi, frameworkowi UI po stronie klienta, i standardowi WebAssembly C# jest jedną z bardzo nielicznych technologii poza JS, w których pisze się front-end webowy. C# zna szacunkowo ponad 30% programistów. Większość z nich wywodzi się jednak z dużych firm. Zwinna praca w C# jest możliwa, choć rzadka.

      • Szybkość wytwarzania: JavaScript
      • Koszt wytwarzania: C#
      • Wydajność: C#
      • Wszechstronność: remis
      • Pula programistów: JavaScript
      • Popularność wśród startupów i firm technologicznych: JavaScript
      • Kto wygrywa: C# bije JS pod względem wydajności i opłacalności. Nie dorównuje jednak ogromnej społeczności JavaScriptu i jego powszechnemu wykorzystaniu wśród startupów i firm technologicznych.

      JavaScript a Rust i Go

      Choć Rust i Golang wywodzą się z zupełnie różnych światów, mają wiele podobieństw. Rust to wieloparadygmatowy język programowania stworzony pierwotnie przez Mozillę jako zaawansowane rozszerzenie języków uczenia maszynowego. Obecnie służy głównie do budowy wewnętrznego oprogramowania, systemów operacyjnych oraz narzędzi infrastrukturalnych i DevOps. Znajduje też szerokie zastosowanie w tworzeniu gier, a także w projektach AI, ML i VR. Rusta można wykorzystać zarówno na froncie, jak i na backendzie aplikacji webowych. 

      Golang stworzyło w 2007 roku Google, żeby usprawnić budowę infrastruktury oprogramowania. Dziś programiści budują w nim duże systemy dla firm oraz solidne, skalowalne serwery sieciowe. Coraz częściej trafia też do web developmentu. 

      Zarówno Rust, jak i Go to języki statycznie typowane, znane z niezwykłej szybkości, efektywności i obsługi współbieżności. Jednocześnie nie są łatwe do opanowania, co wpływa na wielkość i dostępność puli programistów. Z Go korzysta mniej niż 9% programistów, a Rusta zna nieco ponad 5%. Do tego, jako technologie stosunkowo nowe w porównaniu z JavaScriptem, Rust i Go potrzebują jeszcze czasu, aby dojrzeć i pokazać pełnię możliwości.

      • Szybkość wytwarzania: remis
      • Koszt wytwarzania: Rust i Go
      • Wydajność: Rust i Go
      • Wszechstronność: Rust i Go
      • Pula programistów: JavaScript
      • Popularność wśród startupów i firm technologicznych: JavaScript
      • Kto wygrywa: Wydajne i oszczędne języki Rust i Go wygrywają z JavaScriptem w kilku kategoriach, ale rzetelnych programistów w tych technologiach trudno znaleźć.

      JavaScript a Java

      Javę zaprojektowano jako technologię wieloplatformową, gotową wspierać nie tylko oprogramowanie desktopowe, ale i aplikacje mobilne (pamiętasz aplety Javy?). Obecnie zakres tego języka się skurczył, a programiści używają go głównie do backendu webowego i aplikacji na Windowsa. 

      Jako język kompilowany Java bywa szybsza niż JS. Wygrywa z JavaScriptem także pod względem wydajności aplikacji, bezpieczeństwa i solidności. Mimo to startupy i szybko działające organizacje rzadko sięgają po Javę, bo praca w niej jest powolna i uciążliwa. Z tego samego powodu co drugi programista nie znosi w niej pracować.

      • Szybkość wytwarzania: JavaScript
      • Koszt wytwarzania: Java
      • Wydajność: Java
      • Wszechstronność: remis
      • Pula programistów: JavaScript
      • Popularność wśród startupów i firm technologicznych: JavaScript
      • Kto wygrywa: JavaScript, minimalnie. Wyprzedza Javę pod względem szybkości wytwarzania, wielkości społeczności i popularności. Java jest zwykle wydajniejsza i tańsza, a wszechstronnością oba języki sobie dorównują.

      JavaScript a Kotlin

      Kotlin, technologia pierwszego wyboru do aplikacji na Androida, to nowoczesny, statycznie typowany język programowania. Google stworzyło go jako lekarstwo na braki Javy: bierze z niej to, co najlepsze, i ogranicza ilość kodu szablonowego. 

      Prosty, efektywny i elastyczny Kotlin to ulubieniec programistów aplikacji mobilnych. JavaScript daje jednak porównywalną szybkość i koszt wytwarzania, a przy tym jest znacznie powszechniejszy. Choć Kotlin obsługuje też backend i front-end webowy, ponad 60% oprogramowania w tym języku to aplikacje na Androida.

      • Szybkość wytwarzania: remis
      • Koszt wytwarzania: remis
      • Wydajność: Kotlin
      • Wszechstronność: JavaScript
      • Pula programistów: remis
      • Popularność wśród startupów i firm technologicznych: JavaScript
      • Kto wygrywa: Kotlin nabiera rozpędu i przewyższa JS wydajnością. To jednak za mało, aby przejąć prowadzenie. Jako bardziej wszechstronny język JavaScript jest chętniej wybierany przez firmy nastawione na wzrost.

      JavaScript a TypeScript

      Technicznie rzecz biorąc, TypeScript jest podzbiorem JavaScriptu z kilkoma dodatkowymi funkcjami, z których najważniejszą jest opcjonalne typowanie statyczne (w przeciwieństwie do pierwotnego typowania dynamicznego w JS). Dzięki temu programistom dużo łatwiej budować oparte na JS aplikacje, które da się skalować. 

      JavaScript powstał, żeby wzbogacić strony HTML o interaktywne elementy; TypeScript miał usprawnić pracę z JS. Programiści mogą więc wybierać: czysty JavaScript, szybki i zwinny w małych, prostych projektach, albo TypeScript, który pozwala sprawnie dowozić rozproszony, złożony kod.

      • Szybkość wytwarzania: remis
      • Koszt wytwarzania: remis
      • Wydajność: remis
      • Wszechstronność: remis
      • Pula programistów: remis
      • Popularność wśród startupów i firm technologicznych: remis
      • Kto wygrywa: Idą łeb w łeb. O wyborze decydują głównie wielkość i złożoność projektu.

      image9-1

       

      Biblioteki uczenia maszynowego w JavaScripcie

      Gwałtowny rozwój ML w ostatnich latach skłonił żywą społeczność JS do eksperymentowania z różnymi zastosowaniami tego języka w uczeniu maszynowym. Efekt to wysyp bibliotek ML, zwłaszcza do rekomendowania treści, monitorowania aktywności, rozpoznawania i obróbki obrazów, wykrywania obiektów oraz tłumaczenia. Oto kilka przykładów:

      Brain.js w JavaScripcie

      Brain.js wykorzystuje JavaScript, aby uprościć tworzenie, trenowanie i testowanie sieci neuronowych. Biblioteki można używać z Node.js albo bezpośrednio w przeglądarce do takich zadań jak rozpoznawanie kontrastu kolorów, rozpoznawanie obrazów czy wykrywanie głosu.

      Synaptic w JavaScripcie

      Podobnie jak Brain.js, Synaptic służy do realizowania scenariuszy z sieciami neuronowymi przez trenowanie prostych i bardziej zaawansowanych architektur. Wytrenowane sieci potrafią na przykład malować obrazy, klasyfikować obiekty i „czytać” tekst.

      Deeplearn.js w JavaScripcie

      Deeplearn, otwartoźródłowa biblioteka JS ze wsparciem sprzętowym, pozwala trenować modele deep learningu w przeglądarce i uruchamiać modele wytrenowane wcześniej. Stworzyło ją Google; dziś używa się jej w różnych branżach.

      TensorFlow w JavaScripcie

      TensorFlow, najpopularniejszy z nich, służy do uruchamiania i dotrenowywania istniejących modeli ML w przeglądarce oraz budowania nowych od zera w JS. Rozbudowane modele potrafią wszystko: od rozpoznawania obrazów i głosu po interaktywne aplikacje mobilne z AR i VR.

      PyTorch w JavaScripcie

      PyTorch to pythonowa biblioteka uczenia maszynowego, którą łatwo przekonwertować na TensorFlow działający w przeglądarce w JavaScripcie. Otwiera to drogę do przetwarzania języka naturalnego czy widzenia maszynowego.

      Neuro.js w JavaScripcie

      Neuro.js, javascriptowa biblioteka i framework do deep learningu oraz uczenia ze wzmocnieniem, służy przede wszystkim do budowy chatbotów i inteligentnych asystentów działających w przeglądarce.

      06 Zalety i wady JavaScriptu

      Z JavaScriptu aktywnie korzysta ponad 12 milionów programistów, a język pozostaje najczęściej używaną technologią web developmentu. Kompilacja just-in-time, obiektowość, współbieżność: powodów, dla których JavaScript skradł serca programistów, jest mnóstwo. Jak jednak wybór JS wpływa na projekt? Żeby odpowiedzieć, zebraliśmy główne zalety i wady JavaScriptu z perspektywy biznesu.

      Zalety JavaScriptu

      Jako dojrzała i szeroko stosowana technologia JavaScript daje biznesowi mnóstwo korzyści. Najważniejsze z nich wymieniamy poniżej.

      Szybsze wejście na rynek

      Składnia JavaScriptu jest uporządkowana i elastyczna, więc kodu stosunkowo łatwo się nauczyć, łatwo go pisać i aktualizować. Projekt kończy się dzięki temu szybciej. Język ma mnóstwo gotowych narzędzi, bibliotek i rozwiązań, więc programiści nie wymyślają koła na nowo. Do tego JS jest mocno oderwany od sprzętu, co pozwala automatyzować ważne funkcje i jeszcze bardziej przyspiesza pracę.

      Wszechstronne zastosowania

      JavaScript powstał, żeby strony były interaktywne, a dziś jest technologią full-stack obecną w wielu systemach. Dzięki narzędziom i frameworkom backendowym i frontendowym programiści nie są ograniczeni do dynamicznych stron: używają JS także poza przeglądarką, w oprogramowaniu IoT, aplikacjach VR czy mobilnych.

      Bogate interfejsy

      Głównym celem JS było ożywienie stron dynamiczną treścią i większość stron nadal wykorzystuje ten język właśnie do tego. JavaScript zwiększa zaangażowanie użytkowników dzięki interaktywnym elementom, takim jak formularze, slajdy, zdarzenia myszy, pola wejściowe czy przeciąganie i upuszczanie.

      Przewaga szybkości

      JavaScript wykonuje się po stronie klienta, nie na serwerze, więc nie spowalniają go odwołania do backendu. Nie wymaga też kompilacji. Razem daje to płynne, szybkie działanie strony.

      Zaufanie i uznanie branży

      JavaScript to najpopularniejsza technologia do tworzenia front-endu webowego. Niemal wszystkie istniejące strony wykorzystują go w jakiejś formie. Język znajduje zastosowanie we wszystkich branżach i sektorach, a ufają mu zarówno nowoczesne startupy, jak i uznane globalne firmy, takie jak IBM, Microsoft czy Samsung. 

      Wsparcie dla wielu urządzeń

      JavaScript jest darmowy, niezależny od platformy i urządzenia, i nie wymaga pobierania ani instalacji. Działa w każdej przeglądarce, w każdym systemie operacyjnym, na komputerach, urządzeniach mobilnych i sprzęcie smart. Dzięki tej uniwersalności docierasz do klientów w wielu kanałach.

      Interoperacyjność i zgodność

      JavaScript może napędzać front-end niezależnie od technologii po stronie serwera. Jest bardzo zgodny z innymi językami i można go wstrzyknąć na dowolną stronę. Ta interoperacyjność przydaje się w dużych, złożonych systemach firmowych, które opierają się na wielu technologiach: każda zoptymalizowana pod swoje zadanie i wszystkie płynnie ze sobą współpracujące.  

      Technologia na lata

      JavaScript jest dojrzały, ale jego świetność wcale się nie kończy. Regularnie pojawiają się nowe narzędzia i frameworki, język stale się rozwija i znajduje nowe zastosowania. Inne stacki przychodzą i odchodzą, a dominacja JS w internecie i jego solidny ekosystem czynią go bezpiecznym wyborem na lata.

      Duża pula programistów

      Firmy mają do dyspozycji imponującą pulę programistów JS. JavaScript jest nie tylko najpopularniejszym językiem programowania, ale ma też jedną z najszybciej rosnących społeczności ostatnich lat. Co drugi web developer regularnie buduje w nim aplikacje webowe, rozszerzenia do innych aplikacji i usługi chmurowe.

      image6-1 jspillar

      W 2019 roku na świecie było ponad 12,2 miliona aktywnych programistów JavaScript

      Wady JavaScriptu

      Jak każda technologia, JavaScript ma ograniczenia. Żeby obraz był pełny, oto kilka jego wad:

      Podatność na ataki po stronie klienta

      Gdy JS działa po stronie klienta, kod jest widoczny dla użytkowników i łatwiej go zmanipulować, niż gdyby działał na serwerze. JavaScript jest przez to podatny na ataki takie jak cross-site scripting czy przejmowanie sesji, które narażają dane użytkowników. Do tego intensywne korzystanie z bibliotek zewnętrznych wystawia aplikacje JS na złośliwy kod.

      Sam standard JavaScriptu jest jednak odpowiednio zabezpieczony i ma wbudowane mechanizmy ochronne. Wiele podatności bierze się ze słabego wdrożenia, nie z wad języka. Z kompetentnymi programistami JavaScript, którzy tworzyli już aplikacje o krytycznym znaczeniu, dane Twojej strony lub aplikacji pozostaną bezpieczne.

      Niezgodność z niektórymi przeglądarkami

      JavaScript działa we wszystkich przeglądarkach, ale czasem zdarzają się niezgodności. Dotyczą one zwykle przestarzałych wersji przeglądarek i skutkują niedostępną stroną lub błędami. Może się też zdarzyć, że kod JS zostanie zinterpretowany zupełnie inaczej w zależności od przeglądarki. Dlatego przed publikacją nowego kodu zawsze trzeba przetestować JS w różnych przeglądarkach.

      Rozdrobnienie społeczności

      Społeczność JS jest ogromna, ale rozdrobniona. Pamiętaj, że wielu programistów w ogóle nie zna natywnego, czystego JavaScriptu. Zamiast tego poruszają się w świecie konkretnych frameworków, które niekoniecznie się pokrywają. Zatrudniając specjalistów JS, zawsze miej to na uwadze. Najpierw określ zestaw narzędzi pasujący do wymagań Twojego projektu, a dopiero potem szukaj odpowiednich umiejętności.

      07 Ekonomia JavaScriptu

      Jako osoba decyzyjna w biznesie na pewno znasz to podstawowe pytanie:

      Ile kosztuje zbudowanie strony lub aplikacji w JavaScripcie?

      Całkowity koszt Twojego projektu JS (albo dowolnego innego projektu programistycznego) zależy od wielu zmiennych. Aby otrzymać dokładną wycenę, musisz wziąć pod uwagę konkretne wymagania swojego projektu.

      Są jednak elementy wspólne, które zawsze trzeba uwzględnić przy wycenie projektu w JavaScripcie. Wymienimy je razem z kilkoma cenami, które warto znać, zanim poznasz ostateczną kwotę. 

      Czy JavaScript jest darmowy?

      Zacznijmy od pytania, które często zaprząta głowę naszym wspaniałym klientom: „Czy JavaScript jest darmowy?”.

      Tak, sam JavaScript jest darmowy: nie kupujesz żadnej licencji, żeby użyć go w projekcie. Najpopularniejsze biblioteki i frameworki JS są otwartoźródłowe, i dobrze, bo programiści JS sięgają po nie na okrągło, żeby pracować sprawniej i szybciej. Część narzędzi jest jednak płatna, o czym opowiemy w kolejnej sekcji.

      Koszt licencji na oprogramowanie JS 

      Dobra wiadomość: JavaScript ma ogromny wybór darmowych frameworków, które sprawdzają się w dużych firmach, co dobrze wróży Twojemu budżetowi. Otwartoźródłowe są między innymi Angular, React, Vue.js, jQuery i Svelte. To samo dotyczy najpopularniejszych frameworków testowych JS i zdecydowanej większości bibliotek JS. Nie zapłacisz za nie ani złotówki.

      Część frameworków ma jednak dwa warianty: open source dla użytkowników indywidualnych i niekomercyjnych oraz płatną licencję komercyjną. Tak jest na przykład z Ext JS. Framework firmy Sencha ma kilka poziomów cenowych, w tym darmową licencję community. Opcje płatne kosztują od 1295 do 1895 dolarów na programistę. Licencje bez ograniczeń wycenia się indywidualnie.

      Gorzej jest z innymi narzędziami JavaScript, które często każą płacić za funkcje rozszerzone lub komercyjne:

      • Za część edytorów JavaScript trzeba zapłacić. Atom, Komodo Edit i Visual Studio Code są otwartoźródłowe, ale za WebStorm zapłacisz 10-13 dolarów miesięcznie, a za Sublime Text 80 dolarów (jednorazowo).
      • Platformy do tworzenia API, takie jak Postman, SoapUI czy Swagger UI, kosztują od 12 do 54 dolarów za użytkownika miesięcznie.
      • Wersje dla firm widgetów JavaScript i bibliotek UI mogą kosztować do 850 dolarów rocznie (Ignite UI). 

      Funkcje i możliwości projektu JS

      Ogólnie im bardziej zaawansowany i wielowarstwowy Twój projekt JS, tym wyższe wydatki. Na całkowity koszt wytworzenia oprogramowania w JavaScripcie wpływa w szczególności kilka czynników:

      • Czas pracy. Długość projektu JavaScript mocno wpływa na budżet. Przeciętna strona powstaje w 1-2 miesiące, od deski kreślarskiej do publikacji. Przez „przeciętną” rozumiemy stronę na zamówienie z 10-15 podstronami. Przy 20-50 podstronach harmonogram wydłuża się o 2-4 tygodnie. Złożone funkcje backendowe dodają 4-8 tygodni, a bogate animacje kolejne 2-3 tygodnie. Aplikacja webowa zajmuje średnio 4-6 miesięcy. Aplikacje mobilne zwykle mniej: prostą da się zrobić w 1-2 miesiące, średniej wielkości projekt na zamówienie zajmuje 3-5 miesięcy, a złożona aplikacja dla dużej firmy 6-10 miesięcy.
      • Liczba programistów. Dzięki metodyce zwinnej i elastyczności JavaScriptu zespoły projektowe, programistyczne i QA pracują równolegle, więc projekt kończy się szybciej. Więcej ludzi to jednak większy budżet. Policz, co bardziej Ci się opłaca: duży zespół ekspertów i szybkie wejście na rynek, czy dwie-trzy osoby i dłuższe terminy.
      • Poziom doświadczenia. Doświadczeni eksperci bywają dwa razy drożsi niż juniorzy (więcej w sekcji Koszt zatrudnienia programistów JavaScript). Są jednak warci swojej ceny: pracują bez nadzoru i znacznie sprawniej, a do tego wnoszą własne doświadczenie i perspektywę. Juniorom może brakować umiejętności do zaawansowanych funkcji i złożone zadania zajmują im więcej czasu. Przy prostych zleceniach bywają jednak bardzo efektywni, a to obniża Twoje wydatki.
      • Zestaw narzędzi. JavaScript to stosunkowo tania technologia z mnóstwem darmowych i niedrogich narzędzi. Jeśli jednak chcesz zrealizować projekt własnymi siłami, uwzględnij w budżecie ukryte koszty licencji. Po co płacić za oprogramowanie, skoro otwartego kodu i darmowych narzędzi są całe tomy? Bo rozwiązanie licencjonowane może lepiej pasować do Twojego obecnego stacku, mieć szersze funkcje albo dawać większe bezpieczeństwo lub niezawodność niż darmowa alternatywa.
      • Funkcje na zamówienie. Prosta, oparta na szablonie strona w JavaScripcie może kosztować zaledwie kilkaset dolarów. Kwota rośnie z każdą warstwą personalizacji i złożoności. Nie sposób wymienić wszystkich funkcji, które możesz chcieć w swoim produkcie, ale oto kilka popularnych, które komplikują prace i podnoszą ostateczny koszt:
        • API i integracje zewnętrzne
        • Dodatkowe funkcje bezpieczeństwa
        • Własny interfejs graficzny i układy
        • Funkcje płatności
        • Silniki rekomendacji
        • Chatboty i inteligentni asystenci
        • Integracje IoT
        • Dyktowanie głosowe
        • Możliwości AR/VR
        • Animacje 2D i 3D
        • Konto użytkownika
        • Integracje z mediami społecznościowymi
        • Logowanie jednokrotne
        • Interaktywne dashboardy
        • Obsługa poziomów dostępu
        • Statystyki i analityka
      • Hosting. Ostatnia rzecz. Strona lub aplikacja webowa musi gdzieś stać. Ofert hostingu jest tyle, że kręci się w głowie, a firma każdej wielkości i z każdej branży znajdzie coś dla siebie. Czy zapłacisz kilka, czy kilkaset dolarów miesięcznie, uwzględnij ten koszt w kalkulacjach. 

      Koszt zatrudnienia programistów JavaScript

      Według Glassdoor przeciętny programista JavaScript w USA zarabia 79 tysięcy dolarów rocznie. Dolna część widełek to 57 tysięcy dolarów rocznie, górna: ponad 117 tysięcy. 

      Te stawki nie dają jednak pełnego obrazu. Przede wszystkim dziś nie musisz polegać na ograniczonej puli specjalistów w swoim regionie. Umiejętności JavaScript są bardzo poszukiwane, ale zdolnych ekspertów JS znajdziesz też za granicą i dopasujesz koszt outsourcingu do budżetu.

      Średnie zarobki full-stackowych programistów JavaScript na świecie:

      Stany Zjednoczone: 79-117 tys. USD/rok

      Australia: 65-95 tys. USD/rok

      Kanada: 90 tys. USD/rok

      Francja: 54 tys. USD/rok

      Wielka Brytania: 65 tys. USD/rok

      Polska: 30 tys. USD/rok

      Są też niewielkie różnice między poszczególnymi frameworkami JS.

      • Przeciętny programista AngularJS w USA zarabia 110 tys. USD/rok; początkujący zaczynają od 85 tys. USD/rok, a seniorzy zarabiają nawet 175 tys. USD/rok.

      • W React.js początkujący zaczynają od 68 tys. USD/rok, a doświadczeni zarabiają nawet 171 tys. USD/rok

      • Umiejętności Vue.js są warte od 45 tys. USD/rok do 76 tys. USD/rok

      • Zarobki programisty Node.js mieszczą się w przedziale od 48 tys. USD/rok do 130 tys. USD/rok.

      • Warto też pamiętać, że wynagrodzenia w JS bardzo się różnią nawet w obrębie jednego kraju, w zależności od poziomu doświadczenia i konkretnego zestawu narzędzi JavaScript.

      To zarobki. A jak wyglądają stawki dla klienta, gdy zatrudniasz programistów do projektu?

      Według danych Clutch stawki agencji za programistów JavaScript też zależą od regionu:

      Stany Zjednoczone: do 150 USD/godzinę

      Kanada: 120-130 USD/godzinę

      Australia: 90-120 USD/godzinę

      Wielka Brytania: 100-120 USD/godzinę

      Europa Zachodnia: 80-110 USD/godzinę

      Europa Środkowo-Wschodnia: 45-70 USD/godzinę

      Jak zaoszczędzić na programowaniu w JS?

      JavaScript nie jest idealny, ale cenowo ma kilka wyraźnych przewag nad innymi technologiami:

      • Nie musisz nic płacić za wykorzystanie tego języka w projektach komercyjnych.
      • JavaScript ma mnóstwo otwartoźródłowych narzędzi, które nic nie kosztują.
      • Aby obniżyć koszty wytwarzania oprogramowania, możesz sięgnąć po globalną pulę specjalistów JS i zatrudnić zespoły JavaScript zdalnie.
      • Potężne frameworki, ogromne wsparcie społeczności i przyjazna struktura języka usprawniają pracę, skracają czas projektu i obniżają jego koszt.

      08 Przykłady projektów w JavaScripcie

      Jeśli czytasz od początku, wiesz już, że niemal wszystkie strony na świecie używają JS. Znalezienie kilku zachwycających przykładów nie jest więc trudne.

      Może też wiesz, że mówiąc o JavaScripcie, prawie zawsze mamy na myśli konkretny framework, nie czysty JS. Dlatego przeczesaliśmy internet w poszukiwaniu webowych i mobilnych wdrożeń różnych zestawów narzędzi JS, które pokazują wyjątkową kreatywność. Od solidnych i bezpiecznych bankowych aplikacji mobilnych po gry: oto, co znaleźliśmy.

      Wyjątkowe aplikacje w JavaScripcie

      Medium

      www.medium.com

      Branża: media, publikacje online
      Narzędzia JavaScript: Node.js w połączeniu z serwerem Nginx i frameworkiem Matador MVC
      Gdzie wykorzystuje JS: serwery aplikacji
      Efekt: częste, iteracyjne wdrożenia kodu

      image27

      eBay

      www.ebay.com

      Branża: e-commerce, marketplace online
      Narzędzia JavaScript: Node.js
      Gdzie wykorzystuje JS: backend i front-end
      Efekt: możliwość szybkiej obsługi dużego ruchu

      image7

      YouTube

      YouTube TV

      Branża: media, streaming online
      Narzędzia JavaScript: AngularJS
      Gdzie wykorzystuje JS: backend i front-end
      Efekt: wsparcie wieloplatformowe i solidność w renderowaniu oraz obsłudze dużych zbiorów danych

      image8

      IBM

      IBM MobileFirst Platform Foundation (pakiet do tworzenia aplikacji mobilnych)

      Branża: ICT, tworzenie oprogramowania
      Narzędzia JavaScript: AngularJS oraz integracja z Ionic, jQuery Mobile i innymi frameworkami JS
      Gdzie wykorzystuje JS: front-end aplikacji
      Efekt: firmowy wygląd interfejsu i zaawansowane funkcje przeniesione na urządzenia mobilne 

      image13

      Santander Bank

      www.santander.com.br

      Branża: bankowość
      Narzędzia JavaScript: AngularJS
      Gdzie wykorzystuje JS: aplikacja mobilna
      Efekt: szybki czas ładowania, struktura komponentowa, wbudowane wsparcie bezpieczeństwa

      image3

      Salesforce

      framework Visualforce (do budowy własnych interfejsów)

      Branża: SaaS, marketing
      Narzędzia JavaScript: ReactJS wraz z kontenerem stanu Redux
      Gdzie wykorzystuje JS: front-end aplikacji webowej, strony Visualforce
      Efekt: modułowy projekt aplikacji webowej, szybsze renderowanie złożonych widoków

      image17

      przeglądarka Vivaldi

      www.vivaldi.com

      Branża: technologie internetowe
      Narzędzia JavaScript: stos technologiczny obejmujący ReactJS, Node.js, CSS3, HTML5 i moduły menedżera pakietów NPM
      Gdzie wykorzystuje JS: silnik przeglądarki
      Efekt: konfigurowalny, modułowy projekt, szybka praca, atrakcyjna oprawa wizualna

      image14

      Oscar Health

      www.hioscar.com

      Branża: ochrona zdrowia, ubezpieczenia
      Narzędzia JavaScript: React Native (mobile)
      Gdzie wykorzystuje JS: aplikacja mobilna
      Efekt: 80% ponownie wykorzystanego kodu, mały, ale zwinny zespół

      image34

      BMW

      Zbuduj swoje BMW

      Branża: motoryzacja
      Narzędzia JavaScript: Vue.js
      Gdzie wykorzystuje JS: strona konfiguratora samochodu
      Efekt: interaktywność strony i szybkie aktualizacje interfejsu zgodnie z wyborami użytkownika

      image2

      Xiaomi

      www.mi.com

      Branża: elektronika
      Narzędzia JavaScript: Vue.js
      Gdzie wykorzystuje JS: strona
      Efekt: bogaty interfejs, wciągające animacje

      image4

      HexGL

      HexGL Beta

      Branża: gry
      Narzędzia JavaScript: three.js, JavaScript i WebGL
      Gdzie wykorzystuje JS: gra przeglądarkowa
      Efekt: mocna grafika, interaktywna gra 3D

      image5

      Foursquare

      www.foursquare.com

      Branża: dane lokalizacyjne, nowe technologie
      Narzędzia JavaScript: Backbone.js
      Gdzie wykorzystuje JS: podstawowe API JavaScript
      Efekt: dynamiczne funkcje, takie jak mapy i listy

      image25

      09 Proces wytwarzania oprogramowania w JavaScripcie

      Jeśli to nie jest Twój pierwszy projekt programistyczny, znasz już pewnie schemat: planowanie, projektowanie, kodowanie, testy, wydanie. Z JavaScriptem nie jest inaczej: projekt przechodzi wszystkie etapy „tradycyjnego” projektu software'owego.

      image27-1

      W tym przewodniku poświęconym JavaScriptowi chcemy podkreślić kilka kluczowych aspektów pracy z JS i zwrócić Twoją uwagę na te elementy, które są istotne z perspektywy biznesowej.

      #0 Zanim zaczniesz. Wybór programistów JavaScript

      Aby ruszyć z jakimkolwiek projektem, musisz zebrać odpowiedni zespół: programistów JavaScript i specjalistów od zapewnienia jakości. Gdzie ich znaleźć? Oto kilka opcji:

      • Platformy dla freelancerów. Na świecie jest niemal 12 milionów aktywnych programistów JS, a wielu z nich ma profile na platformach takich jak Fiverr, Upwork czy Freelancer. Dostęp do specjalistów wydaje się nieograniczony: filtrujesz po kompetencjach, doświadczeniu, lokalizacji i innych cechach. Platformy pokazują opinie innych zleceniodawców, ale pamiętaj, że zarejestrować się może tam praktycznie każdy, więc kandydatów trzeba przesiać uważnie. Do tego korzystają z nich głównie programiści na początku kariery, którzy chcą zebrać doświadczenie.
      • Platformy dopasowujące specjalistów. Działają inaczej niż platformy dla freelancerów: same dobierają specjalistów do Twoich kryteriów. Serwisy takie jak Toptal czy Hired dokładnie weryfikują każdego kandydata i sprawdzają jego umiejętności. Są na tyle wiarygodne, że często wybierają je duże firmy, które chcą dołożyć do zespołu jednego czy dwóch programistów.
      • Software house'y. Przy dużych, złożonych projektach JS jeden programista na godziny nie wystarczy. Wtedy radzimy skontaktować się z agencją tworzącą oprogramowanie w JavaScripcie, która zbierze zarządzany zespół ręcznie dobranych, doświadczonych ekspertów JavaScript pod Twoje potrzeby. Właściwą firmę znajdziesz w serwisach takich jak Crunchbase albo napisz do naszego zespołu 😉. Druga opcja oszczędzi Ci czasu i zachodu przy szukaniu specjalistów dopasowanych do Twojego rynku, branży i kultury firmy.

      #1 Poznaj zespół i ustal podstawy

      Przed startem projektu warto zadbać o to, aby wszyscy zaangażowani mieli wspólny obraz sytuacji. Ma to szczególne znaczenie dziś, w czasach pracy zdalnej i globalnie działających zespołów, które nigdy nie spotykają się osobiście.

      Niezależnie od tego, czy pracujesz z własnym zespołem, czy korzystasz z zewnętrznej firmy lub wsparcia freelancerów, warto zorganizować nieformalne spotkanie zapoznawcze, żeby członkowie zespołu się poznali.

      W kolejnym kroku umów rozmowę planistyczną, aby wejść w szczegóły projektu. Wspólnie ustalcie takie kwestie jak:

      • cel i przeznaczenie projektu
      • zakres i budżet projektu
      • docelowi użytkownicy i ich profil
      • dostępny stos technologiczny
      • wymagania do startu projektu
      • możliwe problemy i wąskie gardła
      • rola i zakres obowiązków każdej osoby

      #2 Zdefiniuj wymagania projektowe

      Jeśli pracujesz zwinnie, Twój zespół tworzy teraz backlog zadań na podstawie wymagań technologicznych i biznesowych. Jeśli projekt idzie tradycyjną ścieżką Waterfall, zespół dokumentuje wszystkie wymagania i zakres prac.

      #3 Zbuduj prototyp

      Gdy wszyscy wiedzą, co robić, i rozumieją oczekiwany efekt, architekci rozpoczynają fazę projektowania, która zwykle obejmuje szybkie prototypowanie.

      Jeśli na przykład chcesz odświeżyć istniejącą stronę firmową w JavaScripcie, Twój zespół przygotuje proste układy strony. Jeśli natomiast używasz JS do zbudowania nowej aplikacji mobilnej dla swoich usług, zespół projektowy popracuje nad wireframe'ami i klikalnym prototypem, zanim projekt trafi do programistów.

      #4 Kodowanie!

      Teraz pałeczkę przejmują Twoi programiści JavaScript i piszą kod według zatwierdzonych projektów. Zależnie od specyfikacji powstaje front-end, backend albo oba. Kompletując zespół, zwróć uwagę zwłaszcza na dwie rzeczy. 

      Po pierwsze, komunikacja. W dynamicznym, innowacyjnym środowisku o powodzeniu projektu decydują duch współpracy i jasność przekazu, czyli tłumaczenie złożonych idei prostymi słowami. Komentarze w kodzie, spotkania scrumowe, rozmowy na Slacku: dobry programista musi umieć mówić i słuchać na każdym z tych poziomów. W większych zespołach przepływ informacji łatwiej się psuje; dlatego większość zespołów zwinnych jest mała, do 10-15 osób.

      Po drugie, code review. W tej dobrej praktyce kod każdego programisty regularnie oceniają współpracownicy. Kod jest dzięki temu lepszy, błędy wychodzą wcześniej, a projekt zachowuje spójność. 

      #5 Zapewnienie jakości: jak testować JavaScript?

      W projektach JavaScript prowadzonych zwinnie kod testuje się po każdym sprincie, aby:

      • sprawdzić zgodność ze wszystkimi przeglądarkami i urządzeniami mobilnymi
      • zweryfikować wygląd i wydajność interfejsu
      • zobaczyć, jak strona lub aplikacja wygląda na różnych urządzeniach
      • zbadać bezpieczeństwo aplikacji lub strony

      Co więcej, JS pozwala testować kod bezpośrednio w przeglądarce. Wszystkie główne przeglądarki mają konsolę JS, w której możesz szybko wpisać kod, wykonać go i sprawdzić wyniki. Kompleksowe testy jednostkowe wymagają jednak frameworka.

      Frameworki testowe JavaScript

      Choć na pierwszy rzut oka wygląda to prosto, zapewnienie jakości to złożony i kluczowy etap pracy z JavaScriptem. Na szczęście specjaliści QA nie są zdani na siebie: mają bogaty zestaw narzędzi i frameworków testowych.

      Frameworki testowe JS upraszczają i usprawniają testy, obniżają koszty utrzymania oraz podnoszą szybkość i jakość testowania. Robią to, automatyzując pracę ręczną i pozwalając ponownie używać kodu.

      Frameworki testowe wspierają inżynierów QA i zwiększają ich produktywność, ponieważ:

      • dają wytyczne i konwencje pisania przypadków testowych
      • grupują przypadki testowe w zestawy testów
      • wykonują testy
      • raportują wyniki testów

      Do najpopularniejszych frameworków testowych JS należą:

      • Jest - rozwijany i utrzymywany przez Facebooka, to najpopularniejsze narzędzie do testowania JS. Działa z Node.js, Reactem, Angularem oraz innymi frameworkami i bibliotekami; zespoły QA tworzą w nim, uruchamiają i porządkują testy JS. Korzystają z niego między innymi Facebook, Instagram i Airbnb.
      • Enzyme - otwartoźródłowe narzędzie testowe, które zwykle działa razem z Jest, Mochą i innymi frameworkami i rozszerza możliwości testowania Reacta.
      • Puppeteer - nie framework, ale testowa biblioteka Node.js. Puppeteer daje API do automatyzacji scenariuszy w przeglądarce Chrome.
      • Mocha - jedno z najczęściej używanych narzędzi testowych JS. Mocha pozwala testować aplikacje tworzone w Node.js. Z Mochy korzystają między innymi Asana, Accenture i Coursera.
      • Cypress - kompleksowe narzędzie testowe zbudowane na bazie Mochy; pozwala konfigurować, pisać, uruchamiać i debugować testy w przeglądarce. Wśród użytkowników Cypressa znajdziesz Revolut, Alibaba Travels i Intuit.
      • Jasmine - framework testowy używany głównie z Angularem, ale działa też z innymi narzędziami i bibliotekami; testuje kod pisany w Node.js i Reakcie. Jasmine znajdziesz w stacku GitLaba, UNIQLO czy Accenture.
      • JSFiddle - IDE online, które działa z popularnymi frameworkami JS, w tym Reactem i Vue; inżynierowie QA testują w nim fragmenty HTML, CSS i JavaScriptu bezpośrednio w przeglądarce. Służy głównie do dzielenia się prostymi, szybkimi testami.  

      image22-1

      #6 Wdrożenie projektu JS

      W zależności od produktu końcowego etap wdrożenia w projektach JavaScript może oznaczać:

      • instalację backendu JS na Twoich serwerach
      • wdrożenie aplikacji JavaScript na wybranych platformach chmurowych
      • opublikowanie produktu w wybranym sklepie z aplikacjami mobilnymi
      • wgranie lub aktualizację Twojej strony na serwerze hostingowym

      Refaktoryzacja JavaScriptu

      Projekty programistyczne często zaczynają się od czegoś małego. Powiedzmy, że potrzebujesz podstawowej strony firmowej albo pojedynczej aplikacji użytkowej. Zbierasz zespół, określasz wymagania, ustalasz projekt graficzny i realizujesz go w kilka tygodni.

      Wraz z Twoimi potrzebami rośnie jednak kod. Rozbudowujesz go o nowe interaktywne podstrony prezentujące usługi firmy, dokładasz kilka linijek, aby poprawić układ aplikacji, i tworzysz kilka nowych komponentów, aby wzbogacić funkcje aplikacji mobilnej. Pewnego dnia Twój kod nagle liczy tysiące linii. Rozdęty ponad miarę, staje się trudny do czytania i zrozumienia, nie trzyma się żadnych konwencji nazewniczych i nie da się z nim pracować. 

      Czas na optymalizację JavaScriptu

      Potrzebujesz teraz refaktoryzacji JavaScriptu. Ta metoda optymalizacji kodu poprawia jego wewnętrzną strukturę bez wpływu na zewnętrzne zachowanie Twojej strony czy aplikacji. Kod jest po niej łatwiejszy w utrzymaniu i rozbudowie, a przyszłe prace idą szybciej. 

      Refaktoryzacja to złożony proces obejmujący wiele elementów, takich jak:

      • optymalizacja struktury kodu
      • pozbycie się powtórzeń
      • sprawdzenie standardów nazewniczych
      • weryfikacja i naprawa zależności
      • uproszczenie zbyt złożonych fragmentów kodu
      • doprecyzowanie komunikatów o błędach
      • dodanie brakujących komentarzy i usunięcie tych bez znaczenia

      10 JavaScript dziś i jutro

      Jak powiedział pewien mądry człowiek: „Wszystko płynie, nic nie trwa”. JavaScript też stale się zmienia. Język, frameworki i społeczności są w nieustannym ruchu. Pojawiają się nowi eksperci, wyrastają warsztaty i konferencje o JS, a ekosystem JS wciąż ewoluuje.

      JS przeżył w ostatnich latach gwałtowny wzrost. Zmienia się język, a wraz z nim zakres jego zastosowań i projektów. Aby pomóc Ci być na bieżąco z najnowszymi zmianami, zebraliśmy wszystko, co musisz wiedzieć o stanie JavaScriptu na 2020 rok:

      Społeczność JavaScriptu

      Globalny wykres popularności JS z ostatnich lat pokazuje stały trend, bez większych wahań. Społeczność systematycznie rośnie: dwa lata temu było niemal 10 milionów programistów JS, dziś zbliża się do 12 milionów.

      image12

      (Źródło: PYPL)

      Wygląda też na to, że profil biznesowy firm wykorzystujących JS w swoich produktach pozostaje stabilny. Według badania State of JS 2018 dominującymi użytkownikami JS były firmy zatrudniające 100-1000 osób, a za nimi duże firmy i małe organizacje liczące 20-50 osób. W zeszłym roku proporcje się utrzymały, z niewielkim wzrostem wykorzystania JS w firmach średnich i dużych.

      Co najważniejsze, JavaScript pozostaje najczęściej używanym językiem programowania na świecie ósmy rok z rzędu. Wszystko to potwierdza, że to stabilna, dojrzała technologia, która prawdopodobnie utrzyma silne wsparcie firm i ekspertów.

      Meetupy i konferencje o JavaScripcie na świecie

      JavaScript może pochwalić się co najmniej kilkudziesięcioma dedykowanymi wydarzeniami, na które co roku ściągają tysiące fanów JS, aby dzielić się wiedzą, uczyć się nowych rzeczy i wymieniać pomysłami. Oto najważniejsze spotkania i konferencje o JS na świecie, na których poznasz wszystko, co dotyczy JS.

      • JS Conf - Organizacja JS Conf działa od dekady jako federacja inżynierów, testerów i pasjonatów JavaScriptu, organizując techniczne wydarzenia o JS na całym świecie. Odbywają się wszędzie: od Indii i Korei, przez Europę, po USA i Brazylię, a same wydarzenia JS Conf wciąż ewoluują. Niezależnie od miejsca i edycji konferencja pozostaje obowiązkowym punktem dla każdego profesjonalisty JS, łącząc pod jednym dachem mentoring, różnorodność i naukę.
      • JS Nation - Wydarzenie skupia ponad 25 tysięcy specjalistów JavaScript z całego świata i nazywa się „największą konferencją JS w chmurze”. To dni pełne prelekcji, warsztatów i sesji o tym, co jest na topie (i co nie jest) w chmurowym ekosystemie JavaScriptu.
      • iJavaScript - Międzynarodowa konferencja o JavaScripcie łączy sesje i warsztaty online oraz stacjonarne w cyklu wydarzeń w Europie i USA, poświęconych full-stackowemu JS. Sesje dzielą się na ścieżki technologiczne według frameworka, którego dotyczą. Znajdziesz osobne moduły o Angularze, Reakcie, Node.js i Vue.js, a także specjalną ścieżkę o testowaniu JS, DevOps, narzędziach i SEO.
      • NG-conf - Prawie tygodniowa konferencja (w 2020 roku w całości online), która gromadzi czołowych specjalistów Angulara z USA i spoza nich. Wśród prelegentów zwykle są inżynierowie oprogramowania, architekci i web developerzy z Google.
      • Vue.js Global - Podobnie jak Angular, Vue również ma swoje dedykowane wydarzenie. Ta globalna konferencja, w 2020 roku online, łączy liderów Vue.js, którzy chcą lepiej pracować z tym frameworkiem, oraz osoby decyzyjne w biznesie szukające inspiracji do nowych projektów software'owych.
      • React Live - Przygotowane przez tych samych organizatorów co Vue.js Global, React Live to jednodniowe wydarzenie wypełnione praktyczną wiedzą o szybszym projektowaniu, budowaniu, debugowaniu i wdrażaniu kodu w Reakcie.
      • React Summit - React Summit to największa konferencja o Reakcie, gromadząca ponad 25 tysięcy inżynierów Reacta i full-stack, którzy chcą być na bieżąco z nowościami w JS.

      Kto jest kim w świecie JavaScriptu?

      Jeśli wolisz zostać w domu, zamiast jeździć po świecie za nowinkami z JavaScriptu, nie ma problemu! W ekosystemie JS znajdziesz mnóstwo materiałów i osób, które warto śledzić. Oto lista, kogo obserwować, żeby podszlifować umiejętności JS:

      Strony o JavaScripcie

      • JavaScript - kompleksowe źródło dla programistów JS, którzy chcą utrzymać swoje umiejętności w formie.
      • JS Fiddle - jeden z kilku dostępnych placów zabaw dla JavaScriptu, gdzie programiści mogą poznać frameworki, API i zasoby JS, nie robiąc przy tym żadnych szkód.
      • Superhero.js - podstawowe źródło wiedzy o wszystkim, co dotyczy JavaScriptu, z bogatym zbiorem artykułów, podsumowań, przeglądów i prezentacji podzielonych tematycznie, aby łatwiej zrozumieć JS.
      • Ultimate Courses - strona Todda Motto, znanego inżyniera JavaScriptu i Google Developer Experta, która pomaga podkręcić umiejętności kodowania w JS.
      • JavaScript Weekly - cotygodniowy newsletter z najważniejszymi wiadomościami i artykułami o JS prosto do Twojej skrzynki.
      • The State of JS - globalne badanie programistów JS, które pokazuje ich demografię, zarobki, najczęściej używane technologie JS i najbardziej pożądane umiejętności.
      • GitHub JavaScript - zbiór repozytoriów GitHuba z kodem JS.
      • OpenJS - fundacja, której celem jest rozwój JS przez edukację, certyfikację i dzielenie się wiedzą.
      • Reddit JavaScript - kanał na Reddicie poświęcony JS.

      Blogi, podcasty i vlogi o JavaScripcie

      • Echo JS - tworzony przez społeczność portal z wiadomościami o JS.
      • JavaScript Jabber - ponad 400 odcinków podcastu z wywiadami z liderami i innowatorami JS.
      • Modern Web - dzięki temu podcastowi programiści są na bieżąco z najnowszymi narzędziami JS i dostają porady, jak budować nowoczesne aplikacje w JavaScripcie. 
      • Syntax.fm - wspólnie tworzone radio, w którym twórcy JS zagłębiają się w tematy techniczne oraz wymieniają się doświadczeniem i radami.
      • Front End Happy Hour - każdy odcinek to dyskusja panelowa programistów i współtwórców JavaScriptu poświęcona różnym technicznym i biznesowym aspektom projektów JS.
      • Daily JS - kopalnia wiedzy o JavaScripcie: bieżące i archiwalne artykuły, poradniki, wiadomości i materiały do nauki.
      • Ember Blog - najnowsze wiadomości i aktualizacje z ekosystemu frameworka Ember.
      • ReactJS Blog - oficjalny blog frameworka React z dokumentacją wydań i aktualizacjami narzędzi JS.
      • overreacted.io - osobisty blog Dana Abramova (patrz niżej, influencerzy JavaScriptu), który wyjaśnia kluczowe koncepcje Reacta, narzędzia i strategie pracy.
      • Bits and Pieces - blog tworzony wspólnie, na którym programiści front-endu dzielą się przemyśleniami o frameworkach JS oraz narzędziach i strategiach kodowania.

      Influencerzy JavaScriptu

      • Brendan Eich - ojciec JS. Więcej nie trzeba dodawać.
      • John Resig - twórca najpopularniejszej biblioteki JS, jQuery.
      • Axel Rauschmayer - jeden z najbardziej rozpoznawalnych programistów JS na świecie i autor bestsellerowych książek o programowaniu w JavaScripcie.
      • Jordan Walke - inżynier oprogramowania w Facebooku, znany przede wszystkim z wydania Reacta.
      • Dan Abramov - czołowy współtwórca Reacta, współtwórca biblioteki Redux.
      • Addy Osmani - inżynier JS i autor pracujący nad Google Chrome, którego trzeba obserwować.
      • David Walsh - programista front-endu w Mozilli i jeden z najważniejszych głosów blogowej społeczności JS.
      • Kent C. Dodds - szkoli inżynierów oprogramowania w Kent C. Dodds Tech; Google Developer Expert, który dzieli się ze społecznościami programistów na całym świecie praktycznym doświadczeniem i wiedzą o technologiach Google.

      I to na tyle!

      Masz już wszystko, czego potrzeba, aby wystartować ze swoim pierwszym projektem w JavaScripcie. Mamy nadzieję, że wnioski z naszego przewodnika ułatwią Ci przygodę z JS. 

      Dodaj też ten przewodnik do zakładek jako podstawowe źródło wiedzy o JavaScripcie, żeby zawsze móc do niego wrócić. A jeśli chcesz podzielić się nim z innymi, śmiało!

      Udostępnij ten przewodnik w mediach społecznościowych

      Pracuj z naszymi programistami JavaScript

      Zrealizuj swoją wizję ze sprawdzonymi w boju ekspertami JavaScript, dopasowanymi do potrzeb Twojej firmy.