TGViewer
Кузенков x IT-Хозяева Кузенков x IT-Хозяева @webcorner · 334 subscribers
Post #103 1.93K
И снова о типчиках

Изначально я хотел поныть про переписывание компилятора TypeScript’а на Go, как уже ныл в комментах под новостью, но вместо решил чуть более рационально подойти к вопросу «Что вам дает типизация?». И если в случае с JavaScript’ом все понятно: надежда только на дисциплину разработчиков, вместо помощи от типов, привела к печальному состоянию многие кодовые базы (прикиньте, полное отсутствие комментов и доки в легаси - т.е. нет вообще какой-либо мета инфы, и типчики тут лучше, чем ничего). То вот зачем другим экосистемам и языкам типы? Что они дают нам, разрабам?
Оговорюсь сразу, что дальше речь только про типы, доступные на этапе работы с кодом или компиляции, и пока не про рантайм типы.

Так что дает типизация? Надежность? Сама по себе нет. Перформанс в рантайме? Не совсем. Подерживаемость кода? Без дисциплины все равно ситуация не сильно лучше. Это все спорные вопросы.

Но вот с чем сложно поспорить:
➡️ Улучшение Developer Experience в виде помощи IDE, LSP и иногда хоть какой-то документации, хотя бы для LLM’ок
➡️ Как инструмент для дизайна. Иногда просто круто начать с типчаков, принести их команде на обсуждение, обложиться тестами и потом уже имплементировать.
➡️ Как доказательство корректности. Тема очень интересная и перспективная для некоторых областей, но не доступная для большинства мейнстримных «статически типизированных» языков

В замен мы платим большим кол-вом кода (иногда), не возможностью сделать какие-то выкрутасы (назовем это гибкостью), сложностью инструментария.

🔔С этими в голове у появилась очевидная мысль, что не все системы типов себя стоят и иногда ваш компилятор просто тупой или ленивый. И обычно тупость компилятора историческая (раньше вывод по ХМ был чисто игрушкой теоретиков), либо скрывается за попытками авторов ускорить компилятор за счет вашего удобства.

Типы действительно имеют эти преимущества, когда вы: дизайните с их помощью (ADT, либо костыли вокруг классов), функции пишите почти без описания типов (есть система вывода типов), на основании типов действительно можно верить в корректность программы во время испольнения (лайфтаймы в расте против висящих указателей, отсутствие NPE, даже деление на ноль или док-ва, что массив не пустой). И это не какой-то идеальный мир. Это реальность: плодотворная работа теоретиков и практиков над языками программирования.

И от компилятора TypeScript'а хотелось бы таких же гарантий. И чтобы TypeScript сам был написан с использованием этих гарантий. А не на криво-косо сделанной системе типов Go с interface{}, на котором половина стандартной библиотеки зиждится. И чтобы TS спеку получил в одном из мажоров и чтобы соблюдение этой спеки тоже выводилась системой типов. Но мы уже знаем, что команде TypeScript'а важно другое. А кто хочет этого - пишите на чем-нибудь другом.

Да и в целом, вокруг получающих системы типов, других, ранее чисто динамических языков программирования, строятся интересные научные работы. И постепенное типизирование с gradual typing, например, Elixir’а - выглядит многообещающе, правда там это не приоритет. Да и то, что входит в мейнстрим (PHP, Python) все равно выглядит криво-косо. Но оно пока в процессе - дальше может будет получше.

Ну и в коменты скинул пару достаточно свежих папир с исследованиями, которыми я на эту тему вдохновился 😊.
  • 👍 13
  • ❤‍🔥 2
More from @webcorner
  1. Jun 29, 2026telega-gleam 2.0 🚀 В целом, я убил все остальные фреймворки для тг ботов. Расходимся. Гла…
  2. Mar 7, 2026Агенты в обучении Один из моих любимых примеров использования ИИ-агентов - самостоятельное…
  3. Feb 4, 2026https://t.me/harvardsplatebot Это был тест Harvard Bot 🤖 Кидаем фотку, анализируем еду 🌯
  4. Jan 26, 2026Вайбкод: практика 🛠 Пошаговая инструкция к вайбовой разработке. 📋 Продуктовый вижен Спер…
  5. Jan 26, 2026Вайбкод 🎸 Проекты для инди-дева — это всегда куча потраченного вне рабочего времени в вых…
  6. Nov 14, 2025Скоро будет почти 6 лет, как я занимаюсь индивидуальным и групповым менторством, помогаю р…
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 →