TGViewer
Good dev knows Good dev knows @gooddevknows · 2K subscribers
Post #91 3.26K
Про типизированные языки

Как-то раз к нам в компанию вышел новый СТО. И через примерно месяц своего присутствия он начал рубить с плеча. Сказал, что теперь новые бэк-энд сервисы мы можем писать только на Java или Go.

К тому времени нас было, наверное, около 15 фулстэк Node.js + JavaScript разработчиков. Наш основной стэк был Hapi (кто-то помнит такой фреймворк?), Angular, новый проект был на React. Сказать что мы “удивились” это ничего не сказать. Мы пытались войти в аргументированную конфронтацию, объяснить что хорошая архитектура на Node.js тоже возможна, предлагали сойтись на том, что добавим в список TypeScript. Но CTO был непреклонен, он аргументировал это тем, что для энтерпрайза важнее не скорость разработки, а возможность поддержки ПО в дальнейшем.

Я был фрустрирован. Но рычаги влияния закончились. В итоге я даже успел написать одну интеграцию с платежной системой на Go и мне это вполне понравилось.

Сейчас я понимаю две вещи — 1. у СТО были большие проблемы с коммуникацией, 2. он был прав.

Половина моей карьеры связана с не типизированными языками — PHP, потом JavaScript. И сейчас я понимаю, что все то, что написал в то время, невозможно было бы поддерживать. Потому, что когда ты открываешь код и не имеешь возможность “прокликать” методы и переменные, то когнитивная сложность растет экспоненциально.

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

Это действительно классно, что входящий параметр твоего метода называется data и там может быть и объект и массив объектов и строка. Но это классно только во время разработки. А уже через неделю, когда ты открываешь проект ты вынужден делать реверс инженеринг, чтобы понять, что вообще происходит.

Затраты на хорошую архитектуру JavaScript приложения будут выше, чем скорость, которая “потеряется” из-за использования типизированного языка. Тестами это тоже не исправишь, потому что тестировать приходится значительно больше, по сравнению с типизированными языками. К счастью, сейчас экосистема JavaScript движется в сторону TypeScript.

Не типизированные языки отлично подходят для одноразовых скриптов. А для всего что будет жить больше года и над чем будет работать команда нужно выбирать типизированные языки.

Приходилось поддерживать большие проекты на JavaScript? Пишите в комментариях.

#истории, 🌄Instagram |🤝Patreon
  • 👍 69
  • 👎 6
More from @gooddevknows
  1. Aug 27, 2026🛰 Я придбав Starlink! Ще поза-вчора вранці я не збирався купляти ніякий Starlink. Але, пр…
  2. Jul 1, 2026photo post
  3. Jul 1, 2026✨ Crash Course: Storytelling для інженерів ✨ 📅 9 — 13 липня 2026 1️⃣ Чому історії працюют…
  4. Jul 1, 2026Post #278
  5. Apr 1, 2026We have one ticket left for: https://fwdays.com/event/tech-lead-course-5 . Code LIFE_BY_PP…
  6. Mar 9, 2026Hi friends, For those who have missed it, I now regularly post in my 🇺🇦 channel: https:/…
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 →