「特定のプログラミング言語に縛られない実行環境」を、米国発のCDNベンチャーが開発する理由Publickey(2/3 ページ)

» 2019年05月20日 08時00分 公開

「特定の言語用プラットフォームにしたくなかったからWebAssemblyを選択」

photo FastlyのCTOを務めるタイラー・マクマレン氏

────Lucetとはどういうものなのか、改めて説明していただけますか?

タイラー・マクマレン氏(以下マクマレン氏): Lucetとは、WebAssemblyの事前コンパイラ(注3)と、それに関連するツール群です。

注3:コンパイラ=人が理解する形で書かれたプログラミング言語を、コンピュータが理解できる機械語に翻訳するプログラム(編集部)

 Lucetという名前は、昔北欧にいたバイキングたちがロープや組みひもなどを作るために使った道具に由来しています。つまりコードを組み合わせて面白いものを作り出すようなもの、ということですね。

 Lucetは、非常に大規模な並列性と、短時間で終了するワークロードに特化しています。そのため50マイクロ秒以下で起動し、数千から数万以上のワークロードを同時に実行することが想定されています。

────Fastlyのエッジコンピューティング環境として、なぜWebAssemblyを選択したのでしょうか?

マクマレン氏: プラットフォームを特定の言語のために構築する、ということをしたくなかったためです。よりジェネリックなプラットフォームとしてはJavaVMもありましたが、WebAssemblyの方がよりジェネリックです。というのも、近い将来には恐らくさらに多くの低レベルな型付け言語がWebAssemblyへコンパイルできるようになると思われるからです。

 ただ、ガベージコレクション(注4)性能や、プログラミングの高級言語を実装するのに必要な参照型など、現時点ではWebAssemblyに欠けているものもあります。しかし将来性という点で、業界はこの方向に進んでいると考えています

注4:ガベージコレクション=「garbage collection(ごみ集め)」という言葉の通り、コンピュータプログラムが確保したメモリ領域のうち、不要になった部分を自動的に開放する機能(編集部)

 私たちは数年前からこのプロジェクトに取り組んできていて、WebAssemblyのコンパイラや中間表現を用いた上で、ほとんどオーバーヘッドのない(仮想マシンのような)分離技術を構築できました。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ