Те са трима, както във всяка класическа комбинация. И през последните 7 години имената им винаги вървят заедно, защото са почти задължителният избор за фронтенд разработката на всеки по-мащабен проект. Представяме ви ги в реда, в който се появиха на белия компютърен свят: Angular, React и Vue.js. Свободни за използване, създадени от най-добрите в бранша. Готови да се качите на раменете им и да създавате свръхсложните интерактивни сайтове, които движат днешния живот онлайн.
Днес фронтенд разработката е една от най-търсените професии в света на програмирането. И това е така до голяма степен благодарение на трите наложили се и открояващи се фреймуърка, базирани на JavaScript. Всеки доказан от времето, със своите неизбежни плюсове и минуси, те продължават упоритата си битката. На моменти тя изглежда предрешена, но според нас и трите имат своето бъдеще.
Важно е да имате основната информация как стоят нещата през 2021 г. От една страна – ако ви се налага да изберете с кой фреймуърк да създаде бъдещия си проект. А от друга – ако в момента се учите на програмиране и се чудите коя от парадигмите да изберете. Да, изборът и в двата случая не е лесен, защото всеки от Тримата големи има своите предимства и недостатъци.
Angular.js, проектът на Google, дойде пръв, за да зададе стандарта на модерния фронтенд. После нещата се объркаха, втората версия на платформата беше драстично променена, TypeScript замени JavaScript като основен език, а доста проекти се наложи рязко да бъдат пренаписани. Това разочарова доста хора, но постепенно нещата си дойдоха на мястото. Angular се развива, става все по-бърз, добър и силен и е доста прибързано да смятаме, че той е победен от конкурентите си.
После се появи React, платформата на Facebook, която избухна като огромен фурор и продължава по същия начин до днес. Библиотеката е бърза, лесна, удобна за учене и никак не е случайно, че се търсят огромен брой програмисти с React.
Най-новият състезател в групата е Vue.js. За разлика от конкурентите, той няма зад гърба си могъща компания, но постепенно си извоюва място в тази толкова оспорвана битка. Защото е доста удобен за използване, изключително лек и, може да се каже, взема най-доброто от двата мастодонта.
И така, продължаваме с кратко сравнение по 15 основни параметъра между трите основни JavaScript фреймуърка.
Angular
Създател:
Google
Първа версия:
2010 г.
Последна стабилна версия:
11, представена официално в края на 2020 г.
Основен език:
TypeScript (не бива да се бърка с Angular.js, първоначалната версия, която има свое отделно развитие и доста скромен пазарен дял)
Формат:
За разлика от конкурентите си, Angular не е просто библиотека, а цялостен фреймуърк, който ви дава наготово всичко необходимо. Тоест, не се грижи само за визуалната страна от представянето на сайта, а и за управлението на състоянието, за заявките към бекенда и т.н. чрез вградени в основния фреймуърк функционалности.
Популярност:
127 663 уебсайта го ползват активно по последни данни.
Размер на библиотеката:
232,65 KB
Обявени работни позиции:
Indeed: ~17 000
LinkedIn: ~ 82 000
Мнението на програмистите:
Хората, които казват, че са го ползвали и биха го направили отново, са били 13,6% през 2016 г. срещу 21,9% през 2019 г. Това показва, че Angular трудно завладява нови фенове.
Програмистите, които знаят за него и биха го учили, са били 39,7% през 2016 г. и 9,7% през 2019 г.
Основни предимства:
– Предлага чудесна структура.
– Лесно организирано двустранно обвързване на данните.
– Архитектура на принципа MVC (или MVVM, зависи кого питате 🙂 ).
– Вградена модулна система от допълнителни библиотеки.
– Има дълги традиции, голям брой програмисти, които го ползват и екосистема.
– Удобен е за създаването на прогресивни уеб приложения (PWA) – едно от направленията, които скоро се очаква да изживеят бум.
Основни слабости:
– Значително по-сложен за учене, с по-високо начална крива за начинаещите в сравнение с конкурентите.
– Ограничени възможности за SEO оптимизации.
– Изисква твърде много организация и знание, за да се използва за по-леки сайтове и такива без сериозна логика.
Основно приложение:
Удобен е за сложни, големи, многопластови сайтове. Като цяло не е толкова добро решение, ако става дума за малък проект.
Кога да го изберем:
Тогава, когато имаме комплексна инфраструктура. Когато голяма част от съдържанието на сайта е базирано на сложни взаимовръзки.
Популярност днес:
Като цяло, повечето класации от последните няколко години показват, че търсенето на Angular е значително по-слабо в сравнение с React, но той определено има своето заслужено място, сериозен брой фенове както сред програмистите, така и в мениджмънта.
Известни сайтове, които го ползват:
YouTube, Gmail, Google Cloud, Forbes, UpWork, PayPal
React.js
Създател:
Facebook
Първа версия:
2013 г.
Последна стабилна версия:
17, пусната през октомври 2020 г. Към момента голяма част от сайтовете все още използват предишните версии – 15 и 16.
Основен език:
JavaScript (макар че през последните години все по-популярно е и използването на TypeScript)
Формат:
React.js е библиотека – бърза за учене и лесна за използване, която обаче се грижи само за визуалното представяне на сайта. Всичко останало – като например връзките с бекенда и управлението на състоянието, е в ръцете на безброй външни библиотеки в екосистемата, от които потребителите могат да избират.
Популярност:
3 811 542 са активните сайтове, ползващи React.
Размер на библиотеката:
32,5 KB / 101,2 KB (през мрежата/компресирана)
Обявени работни позиции:
Indeed: ~65,000
LinkedIn: ~90,000
Мнението на програмистите:
Хората, които казват, че са го ползвали и биха го направили отново, са били 48,7% през 2016 г. срещу 71,7% през 2019 г. Ето защо React днес е властелинът на пазара.
Програмистите, които знаят за него и биха го учили, са били 35,3% през 2016 г. и 12% през 2019 г.
Основни предимства:
– Използва се виртуален DOM, който дава изключително оптимизирано откъм скорост представяне. Чрез него се правят промени във вида на сайта само там, където е необходимо. Браузърът трябва да изобразява наново само обновените обекти.
– Позволява създаването на изключително бързи и леки сайтове.
– Скоростта на програмирането е изключително бърза, защото кодът е семпъл и четим.
– Използва принципа на еднопосочното обвързване на данните.
– Бърз и лесен е за учене – след като се справите с основните принципи, нещата бързо потръгват.
– Позволява и създаването на мобилни апликации на двете водещи платформи чрез React Native.
– Натрупан сериозен опит, милиони програмисти по цял свят го ползват вече няколко години.
Основни слабости:
– Налага се да използвате много външни библиотеки, които да избирате сами. Все пак, най-разпространените, като Redux или Axios, са много популярни и доказани с времето.
– Понякога скоростта, която предлага, е за сметка на по-некачествен, труден за поддръжка код.
– Определено отстъпва на Angular в структурирането, особено когато става дума за прекалено големи и многопластови приложения.
– Много от програмистите не харесват JSX – своеобразен език, в който HTML съдържанието се комбинира с JavaScript.
Основно приложение:
Днес React е навсякъде и все пак – основното му предимство е в сайтове със собствена логика, които трябва да се създават и променят бързо.
Кога да го изберем:
React е прекрасен избор за всеки сайт, който трябва да съдържа в себе си поне минимална логика. И все пак тя е толкова, че да е достатъчно сложна, за да я пишете на чист JavaScript. Когато искате малък проект, който бързо може да расте и да се развива. Благодарение на компонентната структура (каквато имат и трите фреймуърка), голяма част от кодът се преизползва.
Популярност днес:
React към момента е тоталният доминатор в надпреварата. Огромен е обемът на обявите, с които се търсят React програмисти, разликата с преследвачите в почти всички показатели е драстична.
Известни сайтове, които го ползват:
LinkedIn, Instagram, Udemy, CNN, Tesla
Vue.js
Създател:
Евън Ю. Поддържа се от независим екип от програмисти
Първа версия:
2014 г.
Последна стабилна версия:
3, от края на 2020 г. Голяма част от проектите все още използват версия 2, която се различава доста сериозно от новата.
Основен език:
JavaScript (през последните години много проекти ползват и TypeScript)
Формат:
Vue, подобно на React, не е цялостен фреймуърк, а изключително лека библиотека, която се концентрира върху визуалната страна на сайта (а оттам идва и името ѝ). Съществува широка екосистема от допълнителни библиотеки за всичко останало.
Популярност:
1 292 620 активни сайтове днес го ползват.
Размер на библиотеката:
31 KB / 84,4 KB (през мрежата/компресирана)
Обявени работни позиции:
Indeed ~2,500
LinkedIn: ~9,000
Мнението на програмистите:
Хората, които казват, че са го ползвали и биха го направили отново, са били 8,7% през 2016 г. срещу 40,5% през 2019 г. Това прави Vue най-бързо набиращия скорост сред състезателите.
Програмистите, които знаят за него и биха го учили, са били 32,2% през 2016 г. и 34,2% през 2019 г.
Основни предимства:
– Vue е изключително лек и бърз. Скоростта му на компилиране е много висока.
– Учи се бързо и лесно от новобранците в професията, както и от хора с опит в React или Angular.
– Обединява най-доброто от опита на двата си конкурента.
– Пише се бързо и лесно; изисква малко оптимизации.
– Стимулира към писането на подреден и качествен код.
Основни слабости:
– Както при React, трябва сами да се грижите за външните библиотеки, които ползвате
– Значително по-млад, няма натрупания опит на конкурентите, нито огромния масив от специалисти, които го ползват.
– Не е толкова удобен за големи, многопластови проекти.
Основно приложение:
Широка палитра от сайтове, в които има вътрешна логика, множество анимации или интерактивни елементи. Удобно се интегрира и с други апликации.
Кога да го изберем:
Във всички случаи той е добро решение. Като цяло не е толкова удобен единствено в по-многопластови проекти, когато архитектурата наистина стане голяма.
Популярност днес:
Бавно, но сигурно, през последните години той трупа фенове и проекти. Най-„младият“ ни състезател е наистина харесван от програмистите, заради пригледността си и скоростта на работа.
Известни сайтове, които го ползват:
GitLab, Behance, WizzAir, 9gag, Alibaba