Czym są frameworki?
Framework to nic innego jak szkielet aplikacji wraz z pewnymi schematami zachowań, które pozwalają na ich budowę. Głównym celem każdego frameworka jest poprawa efektywności, zapewnienie swoistego rodzaju niezawodności oraz utrzymanie jakości kodu w pewnych narzuconych ryzach. Oczywiście oprócz wymienionych wyżej zalet istnieją też pewne niedogodności, takie jak na przykład złożoność kodu. Przed przystąpieniem do pracy musimy po prostu nauczyć się reguł, które panują w danym środowisku. Często wyzwaniem może być wydajność, ale jest to kwestia doboru odpowiednich narzędzi do rozwiązania, które budujemy.
Angular
Angular to framework stworzony przez firmę Google. W praktyce jest to kolejna gałąź frameworka AngularJS, opartego na języku JavaScript. Jednak nie należy spodziewać się tutaj uspójnionych koncepcji czy kontynuacji rozwiązań. Językiem, w którym piszemy w Angularze, jest TypeScript. Framework ten wprowadza pełną gamę funkcjonalności, które powinien posiadać każdy szkielet aplikacji. Programiści cenią Angulara przede wszystkim za takie funkcjonalności jak narzucona architektura aplikacji, routing, rozwiązanie wspierające pisanie komponentów, modułowość czy zastosowanie wzorców projektowych.
Istnieją również problemy, które często są zgłaszane przez użytkowników, między innymi: wysoki próg wejścia – zanim zacznie się pisać kod, trzeba przyswoić sporo wiedzy. Zatem wyzwaniem bez wątpienia jest duża złożoność frameworka oraz paradoksalnie związana z narzuconą architekturą mała elastyczność tworzonych aplikacji.
Vue.js
Jest to framework typu open source, zaprojektowany przez szeroką rzeszę specjalistów. Dane autorów możemy znaleźć na stronie: https://vuejs.org/. Vue.js proponuje bardzo podobne funkcjonalności co Angular, a jednocześnie można odnieść wrażenie, że jest znacznie prostszym frameworkiem niż jego kuzyn od Google. Próg wejścia jest zdecydowanie niższy, a często możemy napisać prostą aplikację po kilku minutach nauki, znając podstawy HTML, CSS i JavaScript. Z drugiej strony jednak powoduje to, że kod może być zdecydowanie gorszej jakości. Kolejną rzeczą, która w Vue.js, jak i Angularze nie jest doskonałym rozwiązaniem, jest rozbudowanie HTML o dyrektywy, które pozwalają nam programować na poziomie szablonu. W mojej opinii znacznie obniża to czytelność kodu.
React
Zaraz, zaraz – czy należy o nim mówić jak o frameworku? Zdecydowanie nie! Pewnie zastanawiacie się, dlaczego w takim razie w ogóle React znalazł się na tej liście? Przede wszystkim dlatego, że jest to biblioteka, która ma ogromną część funkcjonalności frameworka. Wzbogacona o konkretne biblioteki, powoduje, że ekosystem aplikacji reactowej staje się w pełni działającym frameworkiem. Takie rozwiązanie cechuje się tym, że możemy w swobodny sposób zarządzać kształtem naszej aplikacji, nie pomijając dobrych praktyk, które narzucają te narzędzia. Użycie JSX jako języka szablonów jest dużo bardziej czytelne niż typowy kod HTML. Ponadto w React możemy wszystko uznać za komponenty, co powoduje, że nie tworzymy dodatkowych struktur z większą złożonością. W tym ujęciu okazuje się, że moduły nie są potrzebne, a wprowadzają jedynie dodatkową warstwę deklaracji.
Podsumowując… Który framework jest najlepszy?
Z użyciem Angulara można często spotkać się w projektach, w których wymagany jest duży poziom zaufania do narzędzia oraz istnieje konkretna specyfikacja, jak np. w projektach bankowych. W mojej ocenie Vue.js jest najmniej trafnym wyborem spośród wymienionych narzędzi, ponieważ nie wprowadza żadnej rewolucyjności, a sam w sobie miesza mnóstwo warstw w jednym miejscu.
Istnieje mnóstwo rodzajów frameworków frontendowych. Wymienione wyżej są najczęściej używane w ujęciu komercyjnym. W mojej opinii najbardziej przyjaznym oraz najszybszym jest React. Pozwala on na szybkie pisanie kodu bez dodatkowych konfiguracji.
Pamiętajcie jednak, że najważniejsze w budowaniu aplikacji, a tym samym przy wyborze frameworków, jest określenie tego, czego potrzebujemy. Opinie na temat frameworków są subiektywne i często zależne od poziomu wiedzy o nich. Jedno moim zdaniem jest pewne: nie istnieje coś takiego jak „najlepszy framework”, ale na pewno można wskazać „najlepszy framework pod kątem konkretnego rozwiązania”. Który? Niech zdecyduje o tym zespół developerów, którzy będą pisali aplikację.