TGViewer
Сохранёнки программиста Сохранёнки программиста @prog_stuff · 6.53K subscribers
Post #2758 1.05K
Соло-фаундер два года писал коммерческое веб-приложение на Rust. Получил реальный продукт, два доклада на конференциях, и всё-таки переехал на Node.js.

И написал статью об этом, конечно. Кратко перескажу причины.

Шаблоны. Tera, Handlebars — нет type-safety между моделью и вьюхой. Maud, Askama — type-safe, но через макросы, а макросы — это ещё больше компиляции

i18n. Node.js из коробки даёт полный ICU + Intl API + i18next с автокомплитом. В Rust i18n до сих пор незрелый.

CI/CD. 14 минут от push до деплоя (12 из них на компиляцию Docker-образа). На Node.js это 5 минут, включая линт и тесты. Автор признаётся: игнорировал баги в Sentry, потому что фикс = ждать компиляцию

Динамика веба. Бесконечные .ok_or().map_err(), десятки кастомных error enum'ов ради обработки (де)сериализации. sqlx проверяет SQL в compile-time, но динамические запросы то ещё мучение. kysely в Node делает то же без подключения к БД

Итог: проблемы в динамических вещах (шаблоны, i18n, SQL). Для API-сервиса без вьюх выбрал бы Rust снова. Для фулстек-веба соло Node.js хватает.

@prog_stuff
More from @prog_stuff
  1. Sep 22, 2026Как одну проверку Clippy ускорили в 3133 раза Казалось бы, проверить скобки в вызовах макр…
  2. Sep 22, 2026Как SQLite обеспечивает атомарный коммит Транзакция выглядит так, будто записалась целиком…
  3. Sep 21, 2026Как выбрать равновероятную выборку из потока неизвестной длины Интерактивный разбор объясн…
  4. Sep 21, 2026Как LMAX вынесла торговую логику в один поток Разбор архитектуры LMAX показывает, почему м…
  5. Sep 20, 2026Как процессор предсказывает ветвления Псевдотранскрипт доклада объясняет тему с нуля. Конв…
  6. Sep 20, 2026Почему одни движки регулярных выражений зависают, а другие нет Обстоятельная статья Расса…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →