План «Барбаросса» от Vue.js
- среда, 29 ноября 2023 г. в 00:00:16
После выхода крайней и достаточно революционной в плане добавления Composition API версии Vue 3.0 более чем три года назад, каких-либо серьезных изменений от команды Evan You в самом фреймворке больше не было. Только стандартные багфиксы, оптимизация и робкие попытки стать с TypeScript ближе. Основное внимание переключилось на экосистему - Vite, Nuxt, VitePress, Pinia и другие.
В то же время, отчетливо заметно масштабирование работы не вглубь, а вширь. Интересы команды уже давно явно выходят за пределы фреймворка.
Основной таран экосистемы - Vite. Его экспансия за пределы Vue проектов - уже свершившийся факт, достаточно посмотреть на статистику загрузки npm пакетов:
Vite как инструмент уже используется при разработке на других JavaScript фреймворках и чистом js. Его грандиозный успех привел к переключению команды Vue именно на него. На этот раз разработка пошла не только вширь (расширение функционала), но и вглубь - портирование Rollup на Rust. Уже даже есть название нового сборщика - Rolldown.
На данный момент Vite использует два разных сборщика - esbuild
для запуска на dev сервере (скорость) и Rollup
для билда (экосистема плагинов), что даёт некоторые проблемы в совместимости их результатов. Rolldown
предполагается использовать и для того, и для другого.
Первый человек по активности в команде Vue Anthony Fu ведет атаку с флангов. Создатель Vitest, Slidev, VueUse, UnoCSS, Elk, Type Challenges и многого другого и один из основных разработчиков Nuxt вместе с его автором Pooya Parsa выделил из фреймворка некоторые удачные модули и продвигает их в JavaScript мир независимо. Таким модулем является, например, Nitro, библиотеки unjs и unplugin (префикс "un" означает unified или universal, если что).
Очень часто подобные системы являются не просто библиотеками, а комбайном, позволяющим "легко" создавать что-то и сразу деплоить на частные хостинг решения, типа Vercel или AWS, что вызывает законные претензии у опытных разработчиков, привыкшим к стандартам, слабой связности сервисов и открытым технологиям, но, очевидно, притягивает начинающих.
По другому флангу Anthony Fu повел тяжелую кавалерию на ESlint в виде пакета @antfu/eslint-config , который существует уже больше года, но за последние три недели рванул с версии 0.43.1 до 2.1.0, получив в последней "Optional react support". Нужно сказать, что данный конфиг действительно очень сильно упрощает настройку линтера на js проектах и рекомендуется к применению.
Кроме линтера Anthony подобрал задеприкеченные ESbuild-ом правила по форматированию текста и создал новый проект - Stylistic. Почему Prettier не подходит иногда для форматирования он объясняет отдельно.
VitePress, последователь VuePress, SSG фреймворк, де-факто стандарт для внутри-экосистемных документаций. Представляет собой законченный продукт, позволяющий создать приятную справочную систему разработчику, даже не знакомому с Vue. Кастомизация же с помощью Vue компонент позволяет сделать если не всё, то очень многое, включая как персональный блог, так и онлайн магазин.
Я бы сказал, что VitePress сильно пока ещё недооценён, и у него огромный потенциал на своём поле битвы. Anthony Fu, кстати, недавно и там сделал коммиты, оптимизируя рендеринг блоков кода.
Выше рассмотрены всего три момента, которые однако ясно показывают текущую стратегию команды Vue.js. Недавние выступления Evan You, например THINKING ACROSS THE FRAMEWORK BARRIER - RenderATL 2023 и Nuxt Nation 2023: Evan You - Vue.js and Vite Updates подтверждают это.
Anthony Fu также является открытым проповедником по агностицированию и расширению экосистемы Vue и аннексиям чужих территорий, выпуская для своих адептов обучающие видео подобно этому - Anthony's Road to Open Source: The Set Theory | ViteConf 2023.
Теперь посмотрим на рынок вакансий. Еще совсем недавно Vue назывался младшим братом React и Angular. На данный момент:
Хабр Карьера, открытых вакансий:
React - 131
Vue.js - 77
Angular - 40
Upwork, предложения, опубликованные за последние 5 дней:
React - 800
Vue 120
Angular - 70
Ну и напоследок заглянем на trends.builtwith.com, показывающий статистику сайтов, использующих те или иные технологии:
Примечание: временные шкалы на всех графиках не являются линейными и не дают представления о сравнительном росте графиков. Рост Vue.js происходит быстрее.
Обратим внимание на второе место в списке стран по популярности Vue. Будем надеяться, что в этом заслуга и нашего блога )
Из вышеуказанной статистики видно, что Vue "в среднем" на данный момент отстает от React примерно в два раза. За последние 4 года Vue сократил отставание от React по загрузке основного npm пакета с 7 до 4 раз. Ну и надо учитывать инерционность рынка - доминирование React 5-10 лет назад было, всё-таки, подавляющим, а вебсайты не переписываются каждый год на новый фреймворк.
Тренды Ангуляра удручающи для Google, что, наверное, как-то связано с его менеджментом. Падение в 2021 году очевидно было вызвано стратегическими решениями топ-менеджеров компаний отказаться от Ангуляра еще за 2-3 года до этого. Так что из вопроса: "Смогут ли гиганты Facebook и Google остановить китайского самородка?" второго гиганта можно уже вычёркивать, и всего два бойца остаются в Mixed Frontend Arts октагоне в схватке между свободным разумом опен сорса и кровавыми деньгами корпораций.
Узнать интересную и полезную информацию о Vue.js, а также изучить фреймворк по переводу лучшего учебника по данной теме "Vue.js 3 Design Patterns and Best Practices" можно на нашем сайте: Vue-FAQ.org.
Также у нас появился Телеграм-канал: https://t.me/vuefaq