Фреймворк Turbo прекращает использование языка TypeScript

Давид Хейнемейер Ханссон (David Heinemeier Hansson), автогонщик и автор веб-фреймворка Ruby on Rails, объявил о прекращении поддержки языка программирования TypeScript в коде развиваемого им проекта Turbo и переходе на использование чистого JavaScript начиная с выпуска Turbo 8, без задействования строгой типизации. Уход от использования TypeScript во фреймворке Turbo не повлияет на возможность применения TypeScript в клиентском коде или подключение библиотек, написанных на TypeScript.

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

В качестве доводов за использование TypeScript упоминается упрощение выявления ошибок в коде и удобство при приёме изменений от сторонних участников. Предполагается, что смена языка может нарушить работу многих пакетов в экосистеме Hotwire, сделает неактуальными ожидающие принятиея poll-запросы и нарушит логику работы систем автодополнения кода в интегрированных средах разработки. Недовольство некоторых также вызвало то, что изменение было единолично утверждено без предварительного обсуждения с сообществом и игнорируя мнения других участников.

В ответ Давид Ханссон пояснил, что обсуждение выбора между TypeScript или JavaScript вряд-ли могло изменить фундаментальную позицию сторонников и противников TypeScript. При этом компания 37signals, которая курирует разработку проекта, полностью перешла на использование чистого JavaScript в клиентском коде и внутренних библиотеках. Использование чистого JavaScript не только значительно улучшает читаемость кода, но и избавляет разработчиков от выкрутасов с типами, производимых для удовлетворения капризов компилятора TypeScript.

Фреймворк Turbo распространяется под лицензией MIT и изначально был создан компанией 37signals в процессе разработки платформы управления проектами Basecamp, аналогично тому, как в своё время для данной платформы был создан фреймворк Ruby on Rails. В Turbo применяется концепция построения интерактивных web-приложений “HTML-over-the-wire”, при которой сервер вместо использования JSON напрямую отправляет клиенту HTML-код. Turbo позиционируется как более простая альтернатива web-фреймворкам, формирующим представления страницы на стороне клиента. Отмечается, что реализованный подход позволяет минимизировать использование JavaScript в web-приложении, обеспечить высокую производительность и упростить процесс доработки приложений. При использовании Turbo логика работы приложения не размазывается по фронтэнду и бэкенду, а определяется только на сервере с использованием языка программирования, наиболее удобного для разработчика. Бразуер же занимается только обработкой готового HTML.

Release. Ссылка here.