Создатель Ruby on Rails: «Turbo 8 отказывается от TypeScript»

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Контекст: Turbo — это как htmx, т.е. с идеей передачи html между бэкендом и фронтендом и управлением состоянием на бэкенде, но от создателя Basecamp (сервиса менеджмента проектов), HEY (email-сервиса) и фреймворка Ruby on Rails.
— прим. перевод.

По общему мнению, TypeScript стал большим успехом для Microsoft. Я видел множество сияющих от радости людей, напичкавших JavaScript типами, которые могут быть проверены компилятором. Но я никогда не был его поклонником. Ни через пять минут размышлений, ни через пять лет. Поэтому я с большим удовольствием могу сообщить, что мы отказываемся от TypeScript в следующем большом выпуске Turbo 8.

Дело в том, что на самом деле мне очень нравится JavaScript. Я бы даже сказал, что это мой второй любимый язык после Ruby. Да, с большим отрывом, но всё же второй. Хотя так было не всегда. Но после того, как в JavaScript появились полноценные классы, а также все остальные улучшения после ES6, писать на нём стало по-настоящему приятно.

Я по-прежнему не считаю, что JavaScript хорошо подходит для большинства задач в серверной части «уравнения» веб-приложений, но вполне уважаю и ценю то, что другие считают по-другому. На мой взгляд, это просто наше счастье, что сейчас у нас есть такой способный JavaScript, который браузеры могут интерпретировать без всякой необходимости в компиляторе.

Для меня TypeScript только мешает этому. Не только потому, что он требует явного шага компиляции, но и потому, что он загрязняет код гимнастикой с типами, которая добавляет мне мало радости при разработке, а зачастую и много огорчений. То, что должно быть просто, становится сложно, а то, что сложно, становится any. Нет, спасибо!

Однако это не призыв переубедить кого-либо в чём-либо. Как я уже говорил в статье «Типы и образы мышления в программировании», очень немногие программисты обычно заинтересованы в том, чтобы их мнение о типизации изменилось. Большинство программистов в самом начале своей карьеры обнаруживают, что их либо сильно тянет к типизации, либо или не очень, а затем проводят остаток карьеры, рационализируя "правильный выбор" для себя и других.

В этом и состоит магия дихотомии JavaScript и TypeScript, и надо отдать должное разработчикам TypeScript за то, что они поняли: JavaScript не уйдёт, поэтому полная совместимость должна быть заложена с самого начала. То, что в Turbo 8 отказались от TypeScript, не означает, что вы не можете писать на нём свой клиентский код или использовать любую другую библиотеку, в которой он используется. Мы можем смешивать и сочетать, и это замечательно.

Это также необходимо. Потому что в отличие от таких языков, как Ruby, которые являются языками по выбору, когда речь идёт о серверной части, JavaScript — это язык необходимости (если не учитывать WebAssembly, прим. перевод.), когда речь идёт о клиентской части. Хотя вы можете компилировать его используя различные диалекты (TypeScript, Elm, ClojureScript, ReScript, и т.д., прим. перевод.), вам всё равно придётся признать тот факт, что выполнение кода в браузере означает выполнение JavaScript. Поэтому возможность писать на нём, не прибегая к дополнительным инструментам и не используя сильную типизацию, является благословением в сложившихся обстоятельствах.

Что же, прощай, TypeScript. Пусть ты принесешь много строгости и удовлетворения своему племени, позволяя остальным наслаждаться JavaScript в том славном духе, в котором он был изначально задуман: Свободным от сильной (строгой) типизации.


Можно о типизации думать разное, но хотя бы файлики .d.ts с описанием типов, или же аннотации JSDoc можно было бы внедрить — чтобы облегчить ношу пользователей библиотеки и, тем более, контрибьюторов в неё. А уж зачем было выкидывать Prettier (инструмент для авто-форматирования), непонятно :)

В дополнение к переводу написал пост. Подписывайтесь там и тут, если ещё не. Впереди много полезного контента: как переводов, так и самостоятельных статей.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Типы
67.74% Да 21
16.13% Нет 5
16.13% Мне JS мозг проел, не могу отвечать 5
Проголосовал 31 пользователь. Воздержались 2 пользователя.
Источник: https://habr.com/ru/articles/759826/


Интересные статьи

Интересные статьи

Всем привет! В этой статье мы расскажем о том, как мы реализуем оплаты в наших проектах на Ruby On Rails на примере платформы RuStore, а также поделимся разработанной библиотекой для взаимодействия с ...
Если вы хотите запустить интеграционные тесты на своем сайте, у вас есть три варианта: Poltergeist, Selenium и новое секретное оружие — Ferrum.
Для новичков и стажеров была представлена подборка интересного обучающего материала и литературы.А уже состоявшимся разработчикам можно почитать новости из сферы и узнать о обновлениях гемов.
Новый формат дайджеста.- WebPacker в скором времене перестанет поддерживать Ruby.- В ближайшем будущем C Ruby может содержать в себе код Rust. Matz одобрил.- Spree Commerce получил релиз 4.4. Система ...
Во время осенней конференции Ruby Russia я, на правах организатора, поймал в кулуарах автора Ruby и устроил ему часовой допрос интервью. Вопросы старался выбирать незаезженные, чтобы ответы был...