Разбор интервью с автором TypeScript о портировании его на Go

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

Анонсирован порт TypeScript на Go, который показывает двухкратное уменьшение использования памяти и десятикратное улучшение скорости работы!

В этой статье мы разберем в деталях часовое интервью с автором TypeScript Андерсом Хейлсбергом об этом портировании.

Чего не хватает для лучшей производительности node.js?


Официальный анонс: https://devblogs.microsoft.com/typescript/typescript-native-port/.

Исходный код: https://github.com/microsoft/typescript-go.

Далее, мои (https://t.me/artalog) заметки и комментарии по интервью.

Улучшение перформанса TS — основной фича-реквест в комьюнити, о нем говорят чаще, чем о запросе новых функций.

Переписывание 80% функционала (на момент анонса) заняло полгода (началось в августе 2024). Например, еще не поддерживаются JSDoc, JSX и еще несколько вещей. И дошлифовать остальные 20% займет еще пару лет. Это важно для больших существующих продуктов, но новые проекты или проекты без использования каких-то менее популярных фич TS смогут использовать новый компилятор уже до конца года!

Выбор языка

Переписывать с нуля такой большой проект нереально, решено было портировать код файл за файлом с минимальными отличиями. Важной целью стояло сохранение "99.999%" поведения существующей версии для надежной миграции продуктовых команд.

Go оказался наилучшим вариантом для порта по ряду факторов:

  • он достаточно низкоуровневый и в целом всегда дизайнился под перф,

  • именно на него лучше всего ложится текущий код TS, который содержит огромное количество рекурсивных данных (это же отметает Rust),

  • он очень кроссплатформенный (это же отметает C#).

Производительность

Текущий код TS написан в нормальном функциональном стиле, т.е. просто функции и структуры данных, преимущественно иммутабельные, никаких высокоуровневых ООП или ФП абстракций. Огромный лайк за это

Источник: https://habr.com/ru/articles/890056/


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

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

Создадим прототип SPA в Bitrix без использования популярных JS фреймворков и библиотек, все будет сделано средставами Bitrix.И самое главное без потери серверного рендеринга и SEO страниц.ПогналиВсего...
Наша команда специализируется на разработке и развитии функционала корпоративного портала группы компаний НЛМК.На практике мы сталкиваемся с самыми разными задачами: от вывода ленты новостей компании ...
За годы работы менеджером, я столкнулся с большим количеством различных инструментов для ведения проектов и команд. Каждый раз, когда я натыкался на статьи про стек для менеджеров, всегда видел б...
Задача - сделать AMP версию всего сайта на 1С-Битрикс, чтобы содержание AMP страниц всегда соответствовало оригинальным и изменялось при изменении оригинальных.
Хочу представить на обсуждение читателей немного необычный концепт языка программирования, в котором отсутствует проблема, присущая практически всем промышленным языкам — постоянное у...