Nasza strona używa cookies. Dowiedz się więcej o celu ich używania i zmianie ustawień w przeglądarce. Korzystając ze strony, wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki. Rozumiem

React, Angular, Vue.js - który framework wybrać w 2019?

Łukasz Bodurka Łukasz Bodurka / intive S.A.
Sprawdź, który framework przyniesie Ci najwięcej korzyści oraz czy na pewno potrzebujesz Reacta, Angulara albo Vue.js , a nie biblioteki.
React, Angular, Vue.js - który framework wybrać w 2019?

Frameworki dla JavaScriptu rozwijają się w niezwykle szybkim tempie. Do wyboru mamy stale aktualizowane wersje Angulara i Reacta, a także od pewnego czasu, również zdobywającego popularność na tym rynku - Vue.js. Ponieważ wszystkie z wymienionych narzędzi mają swoje wady i zalety warto przed podjęciem decyzji, z którego skorzystać, zapoznać się z ich szczegółowym porównaniem.

W pracy początkującego dewelopera kluczowe jest, by rozumieć podstawowe pojęcia i narzędzia, zanim zacznie się z nich korzystać. Implementacja gotowych rozwiązań może bowiem zarówno pomóc w pracy, jak również spowodować, że przestanie się rozumieć tworzony przez siebie kod.  


Biblioteka czy framework?

Odróżnienie biblioteki od frameworka nie jest niczym szczególnie trudnym. Zarówno jedno, jak i drugie narzędzie, to ogólnie mówiąc - kody wielokrotnego użytku, napisane przez kogoś innego. Celem ich jest pomoc w rozwiązywaniu typowych problemów, pojawiających się podczas programowania. To, co je różnicuje, to kwestia posiadanej podczas ich używania kontroli. Framework, posługując się metaforą, jest niczym szkielet domu oparty na konkretnych planach, stworzonych przez jakiegoś wykonawcę.

Z założenia właściciel tego domu może zburzyć i wybudować na nowo jego poszczególne elementy, jednak bardziej rozsądnym jest zaakceptowanie planu budynku, gdyż został on zrobiony według dobrych wytycznych. Bardziej dopuszczalnym jest ingerowanie w design i wystrój w środku. Tak samo działa framework – narzuca pewien zestaw procedur, wraz z kolejnością ich zastosowania, nie dając nam zbyt wiele możliwości do jego ogólnej reorganizacji.

Biblioteka z kolei to kontynuując metaforę – sklep meblowy, dzięki któremu właściciel domu nie musi budować stołu, czy szaf od zera. Wystarczy, że je kupi i ustawi w dowolnie wybranym przez siebie miejscu. Biblioteka jest więc zestawem mniejszych komponentów, odpowiedzialnych za konkretne zagadnienia. To programista ma w jej przypadku kontrolę, jak i gdzie zaimplementuje to, co jest mu potrzebne.


React

Zanim rozpocznie się pracę z Reactem, warto wiedzieć, że sam w sobie służy on do wyświetlania widoku, czyli do pokazania klientowi, co się dzieje. Jest on jednak z założenia biblioteką JavaScriptu, a nie frameworkiem. Dopiero od pewnego czasu postrzega się go również jako ten drugi typ narzędzia. Ponieważ społeczność wokół niego stworzyła wiele dodatków, pozwalających na „scalenie” wszystkich istniejących elementów w jedną całość, zaczęto mówić o środowisku Reacta jako frameworku. W takim też kontekście został on poniżej opisany.

Kto stoi za tą technologią?

Twórcą Reacta są deweloperzy pracujący dla Facebooka i jest to najstarszy z wymienionych w tym tekście frameworków. W 2013 został on oficjalnie udostępniony użytkownikom i od tego czasu rozwija się on zarówno dzięki swoim założycielom, jak i niezwykle dużej społeczności.

Architektura i główne założenia

Wprowadzoną w przypadku Reacta rewolucją były reużywalne komponenty. Aktualnie pisze się w nim jednak bardziej funkcyjnie niż obiektowo. Inną innowacją było dodanie funkcjonalności zwanej „wirtualnym DOM-em”. Dzięki niej powstaje dodatkowa ukryta warstwa w przeglądarce, w której wykonywane są obliczenia, normalnie spowalniające jej pracę.

Próg wejścia

W porównaniu do Angulara i Vue.js próg wejścia znajduje się raczej pomiędzy wymienionymi i określony jest jako średni. Dzięki wprowadzonej Create React App można w prosty sposób rozpocząć pracę z Reactem, bez potrzeby samodzielnego konfigurowania wszystkich zależności i instalowania dodatkowych narzędzi. Nie sprawia również trudności zrozumienie idei stojącej za Reactem. Dopiero zostanie jego ekspertem, wymaga większego zaangażowania.

Support społeczności i popularność

React jest bardzo popularny i dodatkowo stale rozwijany przez samego Facebooka. Wsparcie finansowe i deweloperskie takiego giganta jest tutaj kluczowe i pozwala dostarczać szybko nowe aktualizacje.

Kto znany go używa?

Facebook, Uber, Netflix, Twitter, Udemy, PayPal.


Angular

Kto stoi za tą technologią?

Mimo iż AngularJS jest starszy od Reacta, to aktualnie mówi się o jego nowej wersji Angular 2, wydanej w 2016 roku. Stworzony został przez deweloperów pracujących dla Google, a powstał, ponieważ potrzebowali oni rozwiązania dla siebie i swoich problemów, które stałoby się spójnym frameworkiem dla wszystkich ich aplikacji.

Architektura i główne założenia

Angular napisany jest w TypeScript i mocno go wspiera. Dzięki temu połączeniu możliwe jest definiowanie typów danych, które przechowywane są w zmiennych (JavaScript nie posiada takiej funkcjonalności). Jest pisany klasowo.

Próg wejścia

W porównaniu do pozostałych frameworków, próg wejścia w przypadku Angulara jest najwyższy. Nie powinno to jednak demotywować, gdyż udostępniona jest bardzo dobra dokumentacja, wyjaśniająca reguły użytkowania. Dobre zrozumienie konceptów i trzymanie się jego zasad pozwala na skuteczne poruszanie się w nim.

Support społeczności i popularność

Chociaż jest to frontendowy framework, to szybko rozumieją go również osoby programujące w Javie. Posiada dużą społeczność i cieszy się sporą popularnością.

Kto znany go używa?

The Guardian, Lego, Colgate, Sears.


Vue.js

Kto stoi za tą technologią?

Twórcą tego frameworka jest programista chińskiego pochodzenia, Evan You - były pracownik Google. Pragnął on stworzyć takie narzędzie, które będzie lekkie, ale równocześnie podobne do Angulara. Na rynek wypuścił go w 2014 roku.

Architektura i główne założenia

Jest to framework, który niewiele użytkownikowi zabrania i bardziej spełnia funkcję pomocnika, niż narzędzia, które coś narzuca. Ma swoje środowisko oraz „wirtualny DOM” (działający podobnie do tego w React’cie).  

Próg wejścia

Vue.js ma niski próg wejścia. Nie sprawia trudności stworzenie w nim swojej pierwszej aplikacji i daje przy tym sporo dowolności.

Support społeczności i popularność

Posiada dużą i różnorodną społeczność, która równocześnie jest głównym supportem tego frameworka. Evan jest w niego nadal zaangażowany.

Kto znany go używa?

NASA, Behance, Nintendo.


Jak wymienione technologie mają się do zarobków?

Myśląc o potencjale polskiego rynku pracy, zdecydowanie najczęściej w ofertach pojawia się React. Ma on najwyższe widełki wynagrodzenia, ponieważ klienci są już z nim obyci i go kojarzą. Zaraz za nim znajduje się Angular, który może, ale nie musi oznaczać gorszych warunków. Najmniej ofert pojawia się dla Vue.js, ponieważ jest on mniej znany pracodawcom. Zarobki związane z nim nie są jednak szczególnie niższe od tych, które oferowane są w przypadku pracy z pozostałymi dwoma frameworkami.


Jak dobrać odpowiednią technologię do projektu?

Tak jak samodzielny deweloper ma możliwość wyboru, z jakiego języka programowania chce korzystać i po jakie narzędzia podczas tworzenia swojego kodu sięgać, tak będąc członkiem zespołu przy realizacji większego projektu, zanim wybierze się technologię, należy odpowiedzieć na mnóstwo pytań i rozważyć wiele zmiennych zewnętrznych, istotniejszych niż osobiste preferencje. Pośród nich zdecydowanie znajdują się takie zagadnienia, jak:

  1. Co pozwoli zespołowi osiągnąć sukces w tym konkretnym wyzwaniu?
  2. Czy realizowany już był podobny projekt? Jaka wtedy została użyta technologia?
  3. Jakie umiejętności ma bądź ma mieć zespół? To, że jedna z osób coś potrafi, nie oznacza, że pozostali również. Wiedza teamu jest mocnym wyznacznikiem tego, czego można używać.
  4. Czy klient podał swoje wytyczne przy tej realizacji? Osoba zlecająca może już na samym początku narzucić pewne elementy takie jak np. konkretna technologia, ponieważ zależy mu na unifikacji posiadanych systemów czy aplikacji. Zdarza się również tak, że może chcieć wykluczyć on jakieś rozwiązanie, gdyż ma z nim złe doświadczenia. Kolejną potencjalną sytuacją jest to, że należy wziąć pod uwagę działania klienta z jakimś jego konkretnym partnerem, który wymaga zintegrowania ze zleconym nam projektem. I więcej informacji się otrzyma, tym lepszą decyzję będzie można podjąć.
  5. Jaka jest przewidywana przyszłość projektu? Czy będzie on rozwijany?
  6. Kto i jak będzie utrzymywał wynik naszego projektu w przyszłości? Jakie kompetencje ma zespół, który będzie za to odpowiedzialny?
  7. Czy sensowniejszym będzie sięgnięcie po najnowsze technologie (które nie posiadają często stabilnej społeczności, wsparcia i są niewiadomymi w kwestii rozwoju) czy po te stabilne i znane?


Pytań może być znacznie więcej, dlatego istotnym jest szczegółowe omówienie projektu na etapie planowania nie tylko ze zleceniodawcą, lecz również ze wszystkimi potencjalnie zaangażowanymi w zlecenie osobami.


Co wybrać?

Kluczowe pytanie, czy poznać dobrze technologię, czy od razu zacząć zarabiać, pojawia się w głowie prawie każdego młodego dewelopera. Nie istnieje niestety uniwersalna odpowiedź. Zdecydowanie warto jednak nie skupiać się na początku konkretnie na frameworkach, a poznać dobrze JavaScript, bo to ostatecznie w nim się programuje. Mając dobrą znajomość języka, jest się nawet w stanie stworzyć swój własny framework! Jeśli jednak ktoś już posiada ugruntowane podstawy i pragnie wejść na kolejny etap rozwoju, to spokojnie można stwierdzić, że każdy z wymienionych frameworków jest podobnie dojrzały, więc niezależnie, który zostanie wybrany, stworzone w nich aplikacje będą podobnie skalowalne, szybkie i wydajne. Ważne jest tylko, by rozumieć to, co się pisze.

Komentarz specjalisty Łukasza Bodurka, Principal Software Engineer w intive nt. wyników badań

Z badania wynika, że JavaScript jest aktualnie najchętniej używanym językiem programowania. Nie dziwi mnie to, ponieważ cały nasz świat jest nieustannie on-line, a JavaScript jest ściśle powiązany z technologiami webowymi. Tak naprawdę rynek programistyczny dopasował się po prostu do potrzeb, a wybrał język niezwykle elastyczny i ze stosunkowo niskim progiem wejścia.

JavaScript bardzo dużo zyskał dzięki popularyzacji frameworków, które jeszcze bardziej uprościły development aplikacji i dały programistom wiele gotowych rozwiązań – to co kiedyś musiało być od podstaw przemyślane, zaprojektowane i zaprogramowane, teraz w postaci aplikacji POC może powstać w zaledwie kilka dni, opierając się na gotowych rozwiązaniach dostępnych dla każdego. Niesie to ze sobą bardzo dużo możliwości, jak i zagrożeń. Początkujący programiści uczą się frameworków zamiast języka programowania i nie wiedzą, co się dzieje „pod spodem”, a ta wiedza w przypadku projektów, które mają być dobrze wykonane i utrzymywane przez lata, jest bardzo potrzebna.

Określanie się mianem specjalisty w jakimś frameworku jest aktualnie kartą przetargową, lecz przestanie nią być, gdy dane narzędzie straci na popularności. W związku z czym należy poznawać przede wszystkim język programowania. Na rekrutacji często spotyka się bardzo doświadczonych programistów, którzy dość szybko są w stanie ocenić, czy kandydat zna swoją technologię, czy tylko dany framework. Należy pamiętać, że zawód programisty to ciągła nauka i nieustanna potrzeba rozwoju. Zmieniają się frameworki, biblioteki, zmienia się sam język oraz rynek. To programista dostosowuje się do technologii, a nie na odwrót.

Masz coś do powiedzenia?

Podziel się tym z 120 tysiącami naszych czytelników

Dowiedz się więcej
Rocket dog