JavaScript/TypeScriptからWebAssemblyやネイティブバイナリを生成するコンパイラ「Porffor」の開発が加速へ、開発者がフルタイムで取り組み
今回は「JavaScript/TypeScriptからWebAssemblyやネイティブバイナリを生成するコンパイラ「Porffor」の開発が加速へ、開発者がフルタイムで取り組み」についてご紹介します。
関連ワード (普及、期待、言語等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
「Porffor」は、JavaScript/TypeScriptをWebAssemblyバイナリやネイティブバイナリへとコンパイルする実験的なツールであり、これまでにない2つの特徴を備えています。
1つ目はJavaScript/TypeScriptをコンパイルしてWebAssemblyバイナリやネイティブバイナリを生成しようとしている点です。
これまでもJavaScript/TypeScriptをWebAssemblyに変換するツールは存在していましたが、JavaScriptのコードとWebAssembly版のJavaScriptエンジンを1つにパッケージングするという手段で実現していました。
実行時には、パッケージ内部のJavaScriptコードをWebAssembly版JavaScriptエンジンで実行していたのです。そのため生成されたバイナリの大きさは比較的大きく、また実行速度はあくまでJavaScriptランタイムに制約されていました。
これに対しPorfforは実際にJavaScript/TypeScriptをWebAssemblyバイナリやネイティブバイナリへとコンパイルするため、生成されるバイナリサイズは非常に小さく、実行速度も高速となります。
2つ目は、JavaScript/TypeScriptに対応している点です。
これまで、WebAssemblyをターゲットとしたプログラミング言語としては、Rustが最も人気が高く、GoやC++なども使われています。
これがWeb開発者の間で広く普及しているJavaScript/TypeScriptでWebAssemblyバイナリやネイティブバイナリの生成がターゲットにできれば、RustやGo言語と言った新しいプログラミング言語を覚えなくともWebAssemblyを用いた開発が可能になるため、WebAssemblyアプリケーションの普及拡大に大きく貢献しそうです。
また、JavaScript/TypeScriptでネイティブバイナリをターゲットに出来るようになれば、これらの言語での新たな種類のアプリケーション開発につながるでしょう。
今月からフルタイムで開発に取り組み
こうした特徴を備えたPorfforは、元MozillaのJavaScriptエンジニアであるOliver Medhurst氏が開発を進めているプロジェクトです。
そして先月末、Oliver Medhurst氏はこのPorfforにフルタイムで取り組めるようになったことを明らかにしました。
Thrilled to announce that from next week I'll be working on my AOT JS engine Porffor full-time, thanks to the support of @defunkt!
— Oliver Medhurst (@CanadaHonk) July 30, 2024
これにより今月(2024年8月)から、Porfforの開発が加速することが期待されています。
記事執筆時点で、PorfforはJavaScript(ECMAScript)の仕様を満たすテストで39%までパスしたとのことで、現時点ではまだ実験的なプロジェクトであり、完成するとしてもまだ時間がかかりそうです。
Porffor now passes over 39% of Test262, the official ECMAScript conformance test suite pic.twitter.com/hxBaIVVDq4
— Oliver Medhurst (@CanadaHonk) August 25, 2024
しかし前述のようにPorfforは非常にユニークな特徴を持つプロジェクトであり、もしも実用的になればWebAssemblyの普及にとって大きな役割を果たしてくれることが期待されます。フルタイムでの取り組みによる今後の開発の加速に注目したいところです。