TypeScriptをコンパイルしてWebAssemblyバイナリに、実現を目指す「TypeScript Compilation SIG」をByteCode Allianceが発表

2023年4月27日

WebAssemblyの普及と発展を目的とするByteCode Allianceは、TypeScriptのコードをコンパイルしてWebAssemblyバイナリを生成できるようにすることを目指すスペシャルインタレストグループ「TypeScript Compilation SIG」を発表しました

figApril Bytecode Alliance Community Streamのアジェンダ(赤線はPublickeyによる)

WebAssemblyの仕様策定はW3Cが行っており、ByteCode AllianceはそのWebAssemblyを基盤として、クロスプラットフォーム対応を実現するAPI群のWASI(WebAssembly System Interface)やコンポーネントモデル、ガベージコレクション対応などの拡張、およびそれらの事実上のリファレンス実装であるWebAssemblyランタイムWasmTimeの開発などを行っています。

参考:WebAssemblyをあらゆるプラットフォームでセキュアに実行できるようにする「Bytecode Alliance」発足。インテル、Mozilla、Red Hatなど

TypeScriptをWebAssemblyにコンパイルできるようにする

TypeScript Compilation SIGは3月にプロポーザルが公開されていました

このプロポーザルによると、TypeScript Compilation SIGの主な目的は、TypeScriptプログラムをWebAssemblyにコンパイルできるようにし、Webブラウザとスタンドアロンの両方のWebAssemblyランタイムで実行可能にするための適切なソリューションを、WebAssemblyガベージコレクション(WasmGC)の仕様提案に基づいて記述し改良すること、とされています。

活動の範囲は、TypeScriptのWebAssemblyへのコンパイル、Any typeなどTypeScriptの言語仕様をサポートするために必要なランタイムAPIの定義、動的型付け言語のサポートを強化するためにWebAssemblyをどのように発展させるかの検討などとなっています。

すでにTypeScriptライクな「AssemblyScript」と呼ばれるプログラミング言語では、WebAssemblyへのコンパイルを実現しています。しかしTypeScript Compilation SIGではTypeScript言語のフォークによる実現は意図しておらず、言語仕様のサブセットの適用や型システムの追加、ライブラリの利用など拡張によって実現し、それをTypeScriptのコアチームと連携しつつTypeScriptのアップストリームに反映すると説明しています。

WasmGCの登場でTypeScriptだけでなく対応言語が広がる

WebAssemblyにガベージコレクション機能を追加し、新しいプログラミング言語に対応を広げる動きはTypeScriptに限ったものではありません。

WebAssemblyはこれまでガベージコレクション機能を備えておらず、そのためにプログラマが完全にメモリを管理するC++や、シンプルな仕組みで自動的にメモリ管理が行われるRustのようなプログラミング言語などをコンパイルし生成することが一般的でした。

WebAssemblyにガベージコレクション機能が追加されることで、JavaやPythonやRubyなど、ランタイムが自動的にメモリ管理を行うプログラミング言語などのWebAssembly対応が期待できます。

すでにWebAssemblyのガベージコレクション対応の実装は始まっており、それを前提にDart/FlutterKotlin/Wasmなどの言語やフレームワークがWebAssembly対応を表明しています。

TypeScriptはWebアプリケーションの開発を中心に幅広く使われているプログラミング言語です。TypeScriptのプログラムがWebAssemblyへコンパイル可能になれば、WebAssemblyの普及に大きく貢献することは確実でしょう。

あわせて読みたい

WebAssembly Web技術 Web標準 プログラミング言語 TypeScript



タグクラウド

クラウド / AWS / Azure / Google Cloud
コンテナ / Docker / Kubernetes
クラウドネイティブ / サーバレス
クラウド障害 / 運用・監視

プログラミング言語 / 開発ツール
JavaScript / Java / .NET / WebAssembly
HTML/CSS / Web標準

アジャイル開発 / スクラム / DevOps / CI/CD
ソフトウェアテスト・品質
ローコード/ノーコード開発

データベース / RDB / NoSQL / 機械学習・AI
Oracle Database / MySQL / PostgreSQL
Office / 業務アプリケーション

ネットワーク / HTTP / QUIC / セキュリティ
OS / Windows / Linux / VMware
ハードウェア / サーバ / ストレージ

業界動向 / 働き方 / 給与・年収
編集後記 / 殿堂入り / おもしろ

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本