Тег

TypeScript

6 материалов

Cloudflare переписала TypeScript на Rust: в 8 раз быстрее и на 70% меньше памяти (blog.cloudflare.com)

Экспериментальный порт компилятора TypeScript на Rust от Cloudflare заявляет до 8x ускорения и примерно на 70% меньше памяти, чем у TypeScript 7.0; код за несколько дней написали передовые модели.

Участник команды TypeScript говорит, что многое ускорение не связано с выбором языка, а часть уже попадает в TypeScript 7.1.

Не просто заголовок — разбор дискуссии

Главные треды HN: факты из обсуждений, разные стороны, голоса инсайдеров. Email, Telegram или RSS.

Парсер-комбинаторы на TypeScript: разбираем реальный вывод команды ping (t3.at)

Парсер здесь — это функция, которая принимает строку и возвращает значение и непрочитанный остаток. Маленькие парсеры объединяются в большие с помощью pSeq, pMap и pRepeat, а типизированный результат — это кортеж или объект, а не массив совпадений.

Готовый пример разбирает заголовок, строки по каждому пакету и сводку реального запуска ping в один типизированный объект.

Vercel Labs скомпилировала TypeScript-порт компилятора TypeScript в нативный бинарник (github.com)

Каждый этап компилятора сравнили с tsgo на собственном тестовом наборе TypeScript из примерно 12 500 файлов, и проект сообщает о совпадении результатов на проверенных случаях. Результатов бенчмарка не опубликовано, только скрипт для их получения.

Комментатор, который сравнивал её со сборкой на Go, подтвердил, что она быстрее, но предупредил: код рассчитан на подмножество TypeScript, которое поддерживает scriptc, так что результат, возможно, подстроен под этот инструментарий.

LLM написал 100 000 строк, чтобы запустить Kubernetes в браузере — и он вычитал каждую (ngrok.com)

Developer-educator из ngrok перенёс часть Kubernetes на TypeScript так, что кластер целиком работает в браузере: поды, DNS, деплойменты, сборка мусора — всё на стороне клиента. Почти всё написали LLM: около 100 000 строк в 552 коммитах за два месяца.

Ответ на неизбежное «это же просто мусор?»: вычитал каждую строку плюс 204 интеграционных и 1855 юнит-тестов, сверяющих поведение с настоящим кластером через официальный клиент k8s. SRE в треде заметил: лёгкие 80% сделаны, а вся боль — в ConfigMaps, Secrets и Ingress.

«Parse, don't validate» в языке, который сопротивляется: беда структурной типизации TypeScript (cekrem.github.io)

Эссе разбирает, как заставить принцип «parse, don't validate» работать в TypeScript, где из-за структурной типизации проверенный Email неотличим от любой строки. Лекарство — branded-тип: фантомный символ, из-за которого Email несовместим со string на этапе компиляции и исчезает в рантайме.

Старожилы треда разошлись, настоящая ли это идея или подмена: один считает, что брендирование лишь навешивает на строку ярлык «проверено», другой возражает, что любая гарантия типа — это в конечном счёте валидация, которой компилятор согласился доверять.

В 2014-м он предсказал, что JavaScript станет невидимым к 2035-му. Мы прошли полпути (destroyallsoftware.com)

Доклад Бернхардта 2014 года был не про смерть JavaScript. Его тезис: быстрое подмножество вроде байткода (asm.js) становится универсальной целью компиляции, граница между ОС и браузером растворяется, а JS выживает как невидимая основа, в которую компилируют, но к которой не прикасаются.

Оценки расходятся. По направлению WebAssembly доказал его правоту. Но один инженер указывает на загвоздку: Wasm до сих пор не может трогать DOM, поэтому JavaScript-склейка никуда не денется — сроки прогноза сдвигаются.