🔥

Тред (Игорь Камышев)


Меня все еще мучает зуб (вернее, его отсутствие), но давайте я кратенько расскажу про новые странные веяния фронтендов.

Все вокруг шутят, что в мире фронтенда новый фреймворк появляется каждую неделю. Штош, было бы здорово, но основные технологии стагнируют уже много лет.

Вебпак 5 не принёс ничего кардинально нового, Реакт 17 вообще вышел из фич. Мейнстримовый фронтенд стагнирует и не развивается. Поэтому давайте поговорим о странных, экспериментальных или просто непривычных технологиях.

Я, если честно, не верю, что одна из них станет популярной в обозримом будущем, но, мне кажется, что на их основе вырастет что-то очень клевое лет через 5.

Помните статью про то что фронтенды собираются неадекватно долго? habr.com/ru/company/vds…

Ну правда же очень медленно. Один из моих рабочих проектов на топовом MacBook Pro 13 собирается 160 секунд. А на моем прошлом компьютере собирался почти 10 минут.

И с этим ничего не поделать — медленно, долго. Вероятно, эту проблему нельзя решить с помощью JS-тулинга.

Сейчас набирает популярность esbuild (github.com/evanw/esbuild) — это бандлер js написанный на go. И он прямо блейзинг фаст. Говорят в 10-100 раз быстрее чем классические сборщики.

Я пока не пробовал его в бою, только на небольших демо-проектах, но выглядит он впечатляюще.

Кто-нибудь использует esbuild для продакшна?

Другое интересное решение, связанное со сборкой проекта swc (github.com/swc-project/swc) — это компилятор js/ts, написанный на Rust. Он быстрее бабеля в 20 раз.

Конечно, в нем пока сильно меньше возможностей (swc.rs/docs/compariso…), но для многих проектов они и ненужны.

Следующая интересная штука, это замена nvm, снова написанная на Rust — fnm (github.com/Schniz/fnm). В нем я вижу чуть меньше смысла, чем в предыдущих двух, версию ноды мы все-таки меняем не так часто, как собираем проект.

RSLint (github.com/RDambrosio016/…) — это как ESLint, только быстро. Меня очень утомляет долгий линтинг большого проекта на CI, а тут все будет быстро.

Пока этот проект совсем сырой (намного сырее первых трёх), но пощупать уже можно.

Это касалось тулинга вокруг разработки. Теперь давайте обсудим библиотеки, которые помогают строить приложения проще, надежнее, быстрее.

Пару недель назад попробовал @sveltejs и он оказался интересным. twitter.com/kamyshev_code/…
Меня последнее время очень прет @sveltejs, вот тут делился первыми впечатлениями —twitter.com/kamyshev_code/… Если вы не пробовали его, то попробуйте. Он правда прикольный.

Другая интересная штука — @stenciljs Это по сути способ писать веб-компоненты, а потом использовать их в приложениях на привычных js-фреймворках. Там вообще много интересного, но я пока не добрался до вдумчивого изучения.

Стейт-менеджеры нового поколения — мой краш: @effectorjs, recoiljs.org, reatom.js.org. Я совсем не специалист в стм, чтобы рассказывать о них подробно, послушайте лучше умных людей тут youtu.be/cUSyJk6k2rk

Но после любого пет-проекта на любом из них, возвращаться к написанию логики внутри редакса — жуткая боль.