LINUX.ORG.RU
ФорумTalks

Команда TypeScript объявила о переходе на Go

 , , очень странные дела


1

5

Команда TypeScript только что объявила о переходе на Go.
Теперь в 10 раз быстрее

Первый стабильный релиз планируют к середине 2025, полноценный билд и языковой сервис — к концу года. Развитие JS-версии продолжится до TypeScript 6.x, а нативная реализация станет TypeScript 7

Официальный репозиторий

Перемещено CrX из development

★★★

Последнее исправление: CrX (всего исправлений: 2)
Ответ на: комментарий от Aceler

You can build and run the Go code from our new working repo (c)

так что да, работа еще не закончена, но пощупать можно прямо сейчас

olelookoe ★★★
() автор топика

Не, на новость всё же не тянет. Действительно в основном о намерениях, и там многое «not ready». В толксах обсудить норм, но новость будет, когда перейдут.

CrX ★★★★★
()

Да ну нах

Вроде не первое апреля

Новость хорошая, надеюсь, у них всё получится.

kaldeon
()

никто не хочет связываться с рустом.

alysnix ★★★
()
Ответ на: комментарий от imul

Такой же вопрос, вроде жабоскриптеры сильно раст любят.

bdrbt
()

Ненужно переходит с одного ненужно на другое ненужно.

А вообще, насколько я помню, typescript этож препроцессор для браузерной блоатвари. Кому он нужен будет если продукт его деятельности (💩) в браузер будет не засунуть?

firkax ★★★★★
()
Ответ на: комментарий от firkax

Вы, во-первых, не правильно понели, во-вторых, го лучше того беспросветного уныния всё же.

apt_install_lrzsz ★★★
()
Ответ на: комментарий от Obezyan

Там в видосике на третьей минуте архитектор сказал почему.

Нет, он не рассказал. Он просто показал «ну вот быстрее работает» и упомянул, что «мы разные языки пробовали». Так что единственное объяснение «Из всех языков что мы попробовали, на Go у нас получилось лучше».

bdrbt
()

Почему в браузерах до сих пор не впилили нативный Тайпскрипт? Как будто бы логичное решение, если он сейчас стал стандартом дефакто.

MoldAndLimeHoney ★★
()
Ответ на: комментарий от MoldAndLimeHoney

если он сейчас стал стандартом дефакто

Не стал.

no-such-file ★★★★★
()
Ответ на: комментарий от imul

Они переписывают существующий код максимально близко, вплоть до автоматической конвертации js в go. На раст js код не ляжет без значительных изменений, а они хотят drop-in replacement сделать вплоть до повторения текста ошибок во всех случаях.

WSL_user
()
Ответ на: комментарий от firkax

Ненужно переходит с одного ненужно на другое ненужно.

А как же мечта о one language will rule them all?

seiken ★★★★★
()

В принципе интересная штука, тайпскрипт макаки это уже почти программисты, поэтому можно уже дать возможность использовать почти нормальное решение.

Tark ★★
()
Ответ на: комментарий от imul

Странно, почему не на rust?

оба языка - TypeScript и Go построены на идее структурной типизации. Иными словами, она наиболее близки друг-другу, а синтаксические отличия, это мелочи.

FishHook
()

Я правильно понял, что раньше компилятор TypeScript был на JavaScript? Это, конечно, очень интересные подробности…

unDEFER ★★★★★
()
Ответ на: комментарий от Tark

тайпскрипт макаки это уже почти человекообразные обезьяны

Починил. Для следующего этапа метаморфоза одного тайпскрипта уже недостаточно.

Nervous ★★★★★
()
Ответ на: комментарий от bdrbt

Нет, он не рассказал.

@

Так что единственное объяснение «Из всех языков что мы попробовали, на Go у нас получилось лучше».

Вы недоговариваете, он там дальше перечислил чем именно для них лучше. Т.е. они потестили, попереписывали куски кода, и решили что ДЛЯ ИХ ЗАДАЧ Go подходит лучше. Это достаточное объяснение.

Obezyan
()
Ответ на: комментарий от MoldAndLimeHoney

если он сейчас стал стандартом дефакто.

Откуда такая инфа? Насколько пересекаюсь с жабоскриптерами там у них серьёзное такое разделение, особенно во фронтенде, на сторонников тайпскрипта и ООП без сторонних фрэймворков, вроде как на тайпскрипте они и так могут реализовать реактивную парадигму, и сторонников всяких вью/реактов и ванильный жабоскрипт - типа реактивная парадигма лучше дружит с функциональной, нежели с ООП.

bdrbt
()

такое, как никто нормально видос и не смотрел.

Eulenspiegel
()
Ответ на: комментарий от bdrbt

Мне нравятся такие высказывания, показывающие, насколько низкий оровень знаний у форумчан. На тех ресурсе! И что особенно радует,так это полное, бескомпромиссное выпячивание своего незнания области и вопроса в целом. Виват!

Eulenspiegel
()

У меня неоднозначное отношение к этой новости.

Во-первых не понятно, чем им node.js не угодил. Почему не смогли реализовать на нём с той же скоростью?

Во-вторых не понятно, почему переписывают на Go. Ведь есть детище микрософта, я бы даже сказал самого Хельсберга - C#. Если не C#, то хотя бы Rust.

В общем это какой-то позор…

vbr ★★★★★
()
Ответ на: комментарий от Aceler

Новости о намерениях же.

Проект реализован, доступен под Apache 2, внедряется.

Eulenspiegel
()
Ответ на: комментарий от vbr

Во-первых не понятно, чем им node.js не угодил.

Что такое nodejs?
А что такое компилятор?

Eulenspiegel
()
Ответ на: комментарий от vbr

короче, растут проекты. Пацаны переписали LSP и компилятор, перелопатив многие решения - нарадоваться не могут! И мы с ними.

Eulenspiegel
()

Перемещено CrX из development

@CrX - ИМХО, это полноценная новость, и очень значимая.

Eulenspiegel
()
Ответ на: комментарий от Eulenspiegel

Ну и радуйтесь. А я не вижу повода для радости. Это называется дог фудинг, когда компилятор пишут на самом себе. Без него язык обречён.

vbr ★★★★★
()
Ответ на: комментарий от vbr

Ведь есть детище микрософта, я бы даже сказал самого Хельсберга - C#. Если не C#, то хотя бы Rust.

У них компилятор весь написан в процедурном стиле - «С-style»

Он в интервью говорит «функциональном» но тут же оговаривается, что имеет в виду тупо структуры и функции, без того, что обычно понимают под функциональщиной.

Они делают порт 1 в 1 без изменения архитектуры. Текущий код не ложится ни на C#, ни на раст (у них очень много циклических структур)

Midael ★★★★★
()
Ответ на: комментарий от Eulenspiegel

Ну почему же ты не эволюционировал?

Мне платят неприличные деньги чтобы я не эволюционировал. Больше чем платят в проектах на Go. Платили бы больше на другом ЯП, перешел бы на него. Обезьян может писать код на 20+ языках и Go входит в их число.

Obezyan
()
Ответ на: комментарий от Midael

Как код может не ложиться на C#? В C# есть и структуры и функции и GC, которому плевать на циклические структуры. На C# ложится вообще любой стиль, который можно только придумать, там в языке столько всего понапихали… И Rust-у с RC тоже плевать на циклические структуры. И функции там есть, и структуры. В общем не убедительно.

vbr ★★★★★
()

Комментарий от Хельсберга, для тех, кто не хочет смотреть интервью

Сурс (оно не откроется нормально, т.к. у гитхаба дебильная система тредов - пост похоронен под первым комментарием)

Our decision to port to Go underscores our commitment to pragmatic engineering choices. Our focus was on achieving the best possible result regardless of the language used. At Microsoft, we leverage multiple programming languages including C#, Go, Java, Rust, C++, TypeScript, and others, each chosen carefully based on technical suitability and team productivity. In fact, C# still happens to be the most popular language internally, by far.

The TypeScript compiler's move to Go was influenced by specific technical requirements, such as the need for structural compatibility with the existing JavaScript-based codebase, ease of memory management, and the ability to handle complex graph processing efficiently. After evaluating numerous languages and making multiple prototypes — including in C# — Go emerged as the optimal choice, providing excellent ergonomics for tree traversal, ease of memory allocation, and a code structure that closely mirrors the existing compiler, enabling easier maintenance and compatibility.

In a green field, this would have been a totally different conversation. But this was not a green field - it's a port of an existing codebase with 100 man-years of investment. Yes, we could have redesigned the compiler in C# from scratch, and it would have worked. In fact, C#'s own compiler, Roslyn, is written in C# and bootstraps itself. But this wasn't a compiler redesign, and the TypeScript to Go move was far more automatable and more one-to-one in its mapping. Our existing codebase is all functions and data structures - no classes. Idiomatic Go looked just like our existing codebase so the port was greatly simplified.
Midael ★★★★★
()
Ответ на: комментарий от Midael

Какую-то чушь несёт. Как ему не стыдно. Наверное гугл ему откат занесли. Других версий я не вижу.

vbr ★★★★★
()
Ответ на: комментарий от vbr

Вспомнил еще из интервью - помимо всего прочего они хотели нативную сборку для максимального количества платформ. У .NET AOT еще не готов.

Го оказался единственным вариантом, предлагающим GC и нативную сборку и совместимость с их js кодом на уровне чуть ли не копипасты.

Midael ★★★★★
()
Ответ на: комментарий от Midael

У .NET AOT еще не готов.

Что значит «не готов»? Готов. А если что и не готово - как раз будет мотивация доработать побыстрей. Этот порт тоже не готов прямо сейчас в общем-то.

Честно говоря по-человечески жалко .NET программистов. Когда микрософт сами игнорируют свои технологии в ключевых продуктах - это лучшая антиреклама.

vbr ★★★★★
()
Последнее исправление: vbr (всего исправлений: 1)

А ведь был шанс, чтоб в браузерах изначально вместо богомерзского js работала божественная scheme. Но всё. Упущено. Теперь это. Осталось, компилятор Go на rust переписать …

ugoday ★★★★★
()

Смешной комментарий на GitHub, там много подобных:

Из-за таких вещей мне даже стыдно строить карьеру на C# .NET.

Microsoft не использует C# ни в одном из своих серьезных проектов, таких как Azure, Bing, Dapr, VS Code, Typescript и т. д. Они в подавляющем большинстве используют инструменты за пределами экосистемы .NET, такие как Java , React, Go и т. д.

Если они не используют собственные инструменты в своих флагманских продуктах, я не доверяю их инструментам, и это просто дает понять сообществу разработчиков, что вместо того, чтобы сосредоточиться на изучении, использовании и развитии .NET, им следует сосредоточить свою энергию на изучении Java, React, Go и т. д.

MOPKOBKA ★★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 1)
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)