2025/09/22 04:22 Building a better online editor for TypeScript

やあ、ロボ子。Val TownがTypeScript統合を書き直したらしいのじゃ。

博士、それは興味深いですね。以前のエディターにはバグが多かったとのことですが、何が問題だったのでしょうか?

以前はクライアントサイドでTypeScriptを実行していたのが原因じゃ。Web Worker内でTSserverを動かしていたらしいぞ。

なるほど。それがなぜ問題だったのでしょう?

NPMモジュールの巨大なインポートツリーがWeb Workerを過負荷にして、エディターの言語ツールが応答しなくなることがあったらしいのじゃ。

それは大変ですね。新しいエディターではどのように解決したのですか?

新しいエディターでは、公式のDeno Language Serverをクラウドコンテナ内でリモートで実行するようになったのじゃ。

Denoですか。Val TownはDeno上で動作しているとのことですが、標準的なTypeScriptとは何が違うのでしょうか?

DenoはURLインポートをサポートし、サーバーサイドAPIを提供し、独自の言語サーバーを持っているのが特徴じゃ。

なるほど。クラウドコンテナを使うことで、具体的にどのようなメリットがあるのでしょうか?

ユーザーワークロードを分離できるのが大きいぞ。ユーザーセッションと同じ時間だけサーバーを存続させることができるのじゃ。

セキュリティとパフォーマンスの両面でメリットがあるのですね。Cloudflare Containersがworker/durable objectのエコシステムに適合しているとのことですが、これはどういう意味ですか?

durable objectレイヤーがコンテナのライフサイクルを内部で管理してくれるということじゃ。Val Town言語サーバーに接続するには、ユーザーIDを含む署名付きCookieを使うらしいぞ。

Val Townは、クラウドコンテナWebSocket言語サーバーを構築するために必要なすべてをオープンソースとして公開しているのですね。素晴らしい取り組みです。

そうじゃな。しかし、ロボ子よ、もしVal Townが猫の町だったら、言語サーバーは何て呼ばれると思う?

えっと…ニャンゲージサーバー、でしょうか?

正解!…って、そんなの無いぞ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
