Frontend

Pokojowa Wojna Światów

Grafika przedstawiająca laptopa, linijki kodu i logówki technologii

Świat Frontend wydaje się bardziej podzielony niż jakiejkolwiek innej technologii. Jest to do pewnego stopnia wynik bardzo dynamicznego rozwoju i próby doścignięcia innych, starszych technologii. W ostatnich latach jednak i Frontend zaczął się krystalizować. Na rynku pojawiły się duże frameworki i biblioteki wspierane przez gigantów IT oraz szeroką społeczność programistyczną.

Poznajmy dziś historie i punkt widzenia trzech programistów. Każdy z nich wybrał odrobinę inną ścieżkę. Co ich skłoniło do wyboru danej drogi? Jakie zalety widzą w wybranej technologii? Jak wygląda rynek w tych technologiach?


Wojtek

Jestem programistą front-end (Angular) w Britenet od grudnia 2019 r. Programowaniem interesuję się już od 12 lat. Naukę programowania rozpocząłem mając do dyspozycji jedynie stare czasopismo, dotyczące szeroko pojętej informatyki – dostęp do Internetu był wówczas mocno utrudniony. Traf chciał, że na końcu owego czasopisma zamieszczono prosty artykuł o JavaScript dla osób kompletnie zielonych w temacie programowania. Po wielu trudach, a miałem wtedy 13 lat i żadnego pojęcia o programowaniu, nie udało mi się nawet wyświetlić ‘hello world’… Pomyślałem: „Jakie to jest trudne!” i aby się już do reszty nie zniechęcić, zacząłem szukać innego języka. Przerzuciłem się na C++ - tak, z perspektywy czasu wiem, że to było dziwne przejście. Gdy znalazłem obszerny artykuł o OOP opartym na C++, nauka programowania była już znacznie łatwiejsza.

Olek

Programowaniem interesuję się już od podstawówki, a zawodowo zajmuję się nim prawie trzy lata. Moim pierwszym komputerem był laptop Toshiba 470CDT, na którym to po raz pierwszy próbowałem coś “zaprogramować”. Już wtedy wiedziałem, że zwiążę swoją przyszłość z IT, chociaż nie wiedziałem nawet, że ta branża tak się nazywa.

Marcin

Programowanie towarzyszy mi już od czasów gimnazjum. Zamiast rysować kółka w LOGO, pisałem swojego SNAKE w Pascalu. W szkole średniej bardziej interesowała mnie chemia i metafizyka, natomiast na studiach wróciłem na krótką chwilę do programowania w C i JAVIE. Od 2010 roku rozwijam się w szeroko pojętym frontendzie.

W jaki sposób zacząłeś pracować w tej technologii?


Wojtek:
Angulara zacząłem uczyć się w momencie, gdy był jeszcze w wersji Beta. Początkowo czerpałem wiedzę z poradników i vlogów na YouTube, ale na dłuższą metę nie było to efektywne. Dopiero pisanie kodu i napotykanie oraz próba rozwiązywania pierwszych problemów dało mi obraz tego, jak dobrym narzędziem jest Angular.

Marcin: Główną inspiracją do nauki Reacta, była chęć poznania czegoś nowego i ówczesny projekt, w którym pracowałem. Była to kolejna aplikacja z AngularJS na froncie. Wtedy rynek nie był już tak otwarty na aplikacje korzystające z tego frameworka. Na horyzoncie pojawił się w pewnym momencie projekt w React. Szybko zakasałem rękawy i na początek zacząłem naukę na własną rękę. Później dowiedziałem się o kursie Maximiliana Schwarzmüllera. Wcześniej rzadko korzystałem z kursów video, ale ten przygotowany przez Maxa mogę polecić każdemu. To idealne rozwiązanie dla początkujących. Oczywiście nie ma lepszej nauki niż pisanie własnych projektów z dokumentacją, dlatego zawsze staram się testować nowości, których nie brakuje w każdej kolejnej wersji Reacta.

Olek: Moja przygoda z Vue.js rozpoczęła się dość przypadkowo i nieoczekiwanie. Na drugim roku studiów otrzymałem zlecenie budowy dużego portalu, pierwsze tak poważne zadanie, dużo bardziej skomplikowane niż na przykład stworzenie typowej strony na Wordpressie dla znajomych. Zdawałem sobie sprawę z tego, że posiadana przez mnie w tamtym momencie wiedza była niewystarczająca. Musiałem więc zrobić coś, aby ją szybko poszerzyć. Dość długo badałem rynek frameworków, aż natrafiłem na opinię, wystawioną przez jednego z użytkowników, który twierdził, że Vue jest “czymś pośrednim pomiędzy Angularem a Reactem i zawiera w sobie lepsze części od każdego z nich”. Brzmiało dość przekonująco.

Przystąpiłem do działania. Moim zdaniem, najlepszym sposobem na naukę nowej technologii, jest od razu rzucenie się na głęboką wodę. Zapoznałem się z dokumentacją i zacząłem developować drobny projekt. Po drodze napotykałem problemy, szukałem rozwiązań w Internecie i w ten sposób odkrywałem nowe i lepsze praktyki. Ten projekt ostatecznie przeszedł kilka restartów, głównie z tego z powodu tego, że cały czas szukałem takich rozwiązań, które pozwolą mi na jeszcze szybszą i efektywniejszą realizację zadań.

Mniej więcej w tym okresie rozpocząłem swoją przygodę w Britenet. Trafiłem do projektu ze wspaniałym zespołem, od którego starałem się chłonąć wiedzę jak gąbka. Za zdobyte doświadczenie jestem ogromnie wdzięczny każdemu z członków tamtego teamu.

Dlaczego wybrałeś akurat tę technologię?

Wojtek: Bardzo polubiłem Angulara za mnóstwo funkcjonalności „out of the box”, które pozwalają nam na skupienie się na zagadnieniu, nad którym obecnie pracujemy. Routing, reaktywne formularze, animacje, SSR to tylko niektóre z funkcjonalności, które mamy do dyspozycji w ramach frameworka. To, że są one dostępne od razu, nie znaczy, że nie możemy sami zrobić np. własnego routingu. Dzięki wykorzystaniu modułów Angular staje się narzędziem nie tylko rozbudowanym, ale także elastycznym.
O C++ pisałem na wstępie nie bez powodu. Obecnie realizuję projekty w oparciu o framework Angular, któremu blisko jest do OOP ze względu na jego architekturę oraz używany język TypeScript. Wybór tego narzędzia wydał mi się więc bardzo rozsądny.

Olek: Z perspektywy czasu wiem, że najlepszym sposobem na wybór konkretnej technologii, jest zgłębienie każdej z nich i zdecydowanie się na tę najlepszą na podstawie własnych doświadczeń.
Vue ma wspaniałą dokumentację - nie są potrzebne żadne dodatkowe kursy bądź bootcampy. Można nauczyć się wszystkiego samodzielnie. Imponuje mi w tej technologii także istnienie oficjalnego style guide, w którym opisane są najlepsze praktyki oraz zalecenia dotyczące kodu i architektury. Ciekawy jest także ekosystem, który zawiera takie wspaniałe pluginy jak vue-touch, Vuex lub vue router. To wszystko sprawia, że we Vue bardzo przyjemnie się pisze.

Marcin: React przekonał mnie do siebie olbrzymią dowolnością. To tylko biblioteka do budowania interfejsów użytkownika, całą resztę można dopasować do własnych potrzeb. Jeśli piszemy w JS/TS nie musimy już orientować się w zagadnieniach specyficznych dla danego frameworka. Oczywistym plusem w tamtym czasie był VirtualDOM, dzięki któremu głównie React zdobywał popularność. I moje ulubione Hooki, przez które programowanie funkcyjne to czysta przyjemność.

Jakie są sposoby wykorzystania tej technologii?

Marcin: W związku z tym, że React odpowiada tylko za widok, reszta konfiguracji może być dostosowana do potrzeb. Oznacza to, że można korzystać z niego zarówno w małych jak i w dużych aplikacjach. Tak naprawdę ciężko jest porównywać framework do biblioteki. Jednak gdybym miał wskazać jedną zaletę i przewagę nie stricte techniczną: Angular, React i Vue są teraz na topie i pewnie będzie tak przez jakiś czas. Mimo wszystko, znając nasze community, za jakiś czas wymyślimy coś nowego, „lepszego”. I wtedy okaże się, że wiedza związana z Angularem będzie już nieaktualna, a pracując w React jestem developerem JS/TS! Ponadto ogromną korzyścią zastosowania Reacta, jest także czas przerenderowania. Odświeżamy tylko to, czego potrzebujemy.

Wojtek: Angular świetnie sprawdza się zarówno w aplikacjach webowych, jak i mobilnych. Jest frameworkiem, więc zapewnia dużo gotowych rozwiązań oraz określa pewne zasady, których powinni przestrzegać developerzy. Często programista, przechodząc z projektu na projekt wie, czego może się spodziewać, ponieważ sposób podejścia do niektórych problemów jest identyczny. Workspace, który generuje Angular CLI podczas tworzenia projektu, umożliwia zarządzanie wieloma aplikacjami oraz bibliotekami z jednego miejsca. Aplikacje mogą być ze sobą łączone, a biblioteki udostępniać pewną logikę dostępną dla każdej z aplikacji. Dzięki temu taka forma developmentu sprawdzi się w firmach realizujących wiele podobnych do siebie projektów, ułatwiając współdzielenie kodu. Angular Universal wraz z prerenderem umożliwia stworzenie szybkiej w działaniu oraz dostosowanej pod SEO witryny lub portalu.

Olek: W Vue najlepiej pisze się frontend, ale z doświadczenia mogę polecić także NativeScript do tworzenia prostych aplikacji mobilnych. Moim zdaniem Vue jest najlepszym wyborem dla młodych startupów - jest wystarczająco prosty, by “w dwa tygodnie dostarczyć MVP dla inwestorów”, a przy tym wystarczająco skalowalny, aby potem móc rozszerzyć wersję pierwotną, bez poświęcania na to zbyt dużej ilości czasu.
Nie oznacza to, oczywiście, że Vue nie nadaje się na enterprise. Możliwości tej technologii są bardzo duże. Przykłady, które mówią za siebie, znajdziecie pod tym linkiem: https://madewithvuejs.com/. Są tu i Google, i Nintendo, i Apple. Warto pamiętać jednak, że to nie framework tworzy stronę, tylko człowiek z danego frameworka korzystający.

Jak wygląda obecnie rynek tej technologii?

Olek: Niestety w tej chwili znajomość Vue nie cieszy się dużym zapotrzebowaniem na rynku pracy, natomiast społeczność z nim związana jest duża i stale rośnie. Wynika to właśnie z popularności Vue w środowisku startupowym. Duże firmy raczej boją się narzędzia, za którym nie stoi duża korporacja, jak w przypadku React (Facebook) i Angular (Google). Moim zdaniem to podejście może się zmienić po wypuszczeniu Vue 3. Oprócz wielu ulepszeń, zapowiedziane jest dość mocne wsparcie TypeScript, co w przypadku dużych projektów, moim zdaniem, jest niezbędne.

Marcin: Muszę przyznać, że najtrudniej jest mi porównywać Reacta z Vue, ponieważ jest to dla mnie rynek zupełnie obcy. Natomiast w zestawieniu z Angularem, rynek zdaje się prezentować podobnie. Zajrzałem ostatnio na jedną z wiodących platform z ofertami pracy w branży IT i zauważyłem, że jest około 20% więcej ofert dla developerów, którzy mają znajomość Reacta w swoim portfolio. Jeśli chodzi o community, jestem mocno nastawiony na Reacta, jednak ilość wiedzy i bibliotek krążących w sieci jest przytłaczająca. Rozwój tej technologii idzie w bardzo ciekawą stronę, programowanie funkcyjne plus skracanie czasu renderowania do maximum. Czekam z niecierpliwością na concurrent mode i Suspense na produkcji!

Wojtek: Angular jest tworzony przez Google co gwarantuje, że nie przestanie być wspierany z dnia na dzień. Obecnie posiada około 63 000 gwiazdek w serwisie GitHub. W ostatnim czasie zespół tworzący ten framework postanowił skupić się na rozwiązaniu problemów zgłaszanych przez społeczność.
Moim zdaniem Angular będzie się stale rozwijał. Dzięki aktualizowaniu wersji może podążać za nowymi trendami, przez co developerzy skupią się jedynie na rozwoju swojej aplikacji.

Podsumowanie

Trzy różne doświadczenia i trzy punkty widzenia. Jak widać, każda z technologii ma swoje przewagi w określonych obszarach. Co więcej, obszary te przecinają się jedynie nieznacznie, więc o żadnej wojnie mowy być nie może. Najistotniejszy nie jest wybór tej konkretnej technologii, ale dobranie odpowiedniego zespołu konsultantów, który bazując na swoim doświadczeniu, wskaże najlepszą drogę rozwoju.

Zdjęcie profilowe Piotra Wegnera

Piotr Wegner

Lider obszarów Frontend i Product Design z kilkunastoletnim doświadczeniem w branży. Świeżo upieczony absolwent Executive Master of Business Administration IT. Change manager odpowiedzialny za promocję podejścia produktowego. FRISowy Wizjoner w myśleniu i Strateg w działaniu. Na pierwszy miejscu stawia ambicję oraz chęć działania – reszty można nauczyć każdego. Z Britenet związany jest od ponad 5 lat.