テクノロジー

TypeScript の Go 移植に備えて知っておくべきこと

1: ledsun 2025/03/19 00:03

“ゼロからコードを書き直す (rewrite) のではなく、元のコードを行単位で忠実に再現する (port) というアプローチが取られています”

2: sugyan 2025/03/19 00:05

わかりやすくまとまっていて勉強になりました

3: mojimojikun 2025/03/19 01:09

( ・∀・)つ〃∩ ヘェーヘェーヘェーオモシローイ

4: R2M 2025/03/19 06:11

「Compiler API の実態は、コンパイラ内部で使っている関数などをそのまま JS ライブラリとして公開しているだけなので、Go に移植後は利用できなくなります」

5: m-34river 2025/03/19 08:20

Clasp v3がtypescriptサポートやめたのはこれが原因か

6: shoh8 2025/03/19 08:37

完全移植。RustではなくC#でもなくGoの理由

7: aike 2025/03/19 08:39

Goの強みってこういうかっこよくないところで出やすい気がする

8: poad1010 2025/03/19 08:46

この記事をおすすめしました

9: Chisei 2025/03/19 09:16

一回6にしておくか

10: soybeancucumber 2025/03/19 09:55

portというアプローチをとりながらGoなら実現可能だったという点が興味深い

11: satosssi 2025/03/19 10:09

これは勉強になる記事だ

12: mohno 2025/03/19 10:13

そもそも、なんでセルフホストしてるのかと思ったら「Compiler API」←こういうものがあるのか。「Go に移植後は利用できなくなります」「約 5 万行の checker.ts の中にクラス定義は 1 行もない」「仕様書も無い」

13: delphinus35 2025/03/19 10:24

面白かった。なんでRustやC#じゃないのか、どうやって高速化したのかがよくわかった。

14: sisicom 2025/03/19 12:21

“TypeScript のコンパイラは今まで TypeScript で実装(セルフホスト)されていました。 それが TypeScript 7.0 から、Go による実装に移植され、10 倍高速になります。” なるほど、それで早くなった

15: kaz_hiramatsu 2025/03/19 17:09

TSのツールチェインはもう全部Goに寄せるのが幸せな気がする

16: yarumato 2025/03/19 17:28

“TypeScript実装からGo実装に移植され10倍高速に(ネイティブ化でx3、並列化でx3)。TS型システムは常軌を逸した複雑さで、他言語で再実装は実質不可能。rewrite(ゼロから書き直し)ではなくport(TSを直訳)できるのはGo”

17: kfly8 2025/03/19 19:49

綺麗に簡潔にまとまっていてわかりやすい。感謝。