Mozillaの研究部門が2012年、「Rust」という新しいプログラミング言語の開発に注力することを決定した際、Mozillaが掲げる目標は控えめに言っても無謀であるように思われた。
しかし、Rustと、「GitHub」上にある次世代ブラウザエンジン「Servo」のテストベッドは今や、サムスンがその成功に向けてエンジニアリングノウハウを提供するほどのものになったようだ。両社が米国時間4月3日にこのことを発表した。また、Rustのバージョン0.6も公開された。
Rustは、C++に代わって、今日のヘテロジニアスマルチコアのハードウェアにより適切に対応でき、かつ、より安全なプログラミング言語を開発する試みだ。Mozilla ResearchのRustとServoに関するFAQによると、Rustでは、「あらゆる種類のメモリ管理エラー」に起因するクラッシュやセキュリティ脆弱性がなくなる予定だという。MozillaはServoを、広く使用されているWebKitやMozilla独自の「Gecko」のような、新しいARMベースの「Android」ウェブ閲覧エンジンとして開発する計画だ。
Rustのその他の主な特長として、プログラミング言語のプリミティブが比較的使用しやすいことが挙げられる。プリミティブとは、プログラマーに提供されるプログラミング言語の最も基本的なレベルの記述要素である。これによってソフトウェア開発者は、最新ハードウェアにおけるマルチコアCPUをはるかに容易に利用することができるようになると期待される。
これはプログラミングにおける究極の目標であるように思われるが、なぜMozillaがそれを目指すのか。Mozillaの最高技術責任者(CTO)Brendan Eich氏が2日、米CNETに述べたところによると、これがMozillaが主眼とするウェブブラウザと関係するのは、すべての最新ブラウザの記述に使われているC++が十分なものではないためだという。
「C++は設計上安全ではない」と同氏は言う。「ハードウェアによってコードを直接読むことができるため、非常に高速に実行できるが、安全ではない」。
「(Rustでは)解放されたメモリが読み出されることはない」と同氏は述べた。しかし、C++ではある。この問題が「多くのブラウザ脆弱性につながって」おり、セルフコンパイル言語であるRustによってこれが解決される可能性がある。
セキュリティ以外で、Rustによって解決されるとEich氏が期待する主な問題としては、プロセッサコアの並行性の問題がある。現時点では、スマートフォンなどの端末にプロセッサコアを追加しても、電力管理の問題によって実際には速度を上げることができないという。「コアを増やしても電力の壁という問題があるため、実際にはCPUのクロック周波数を減らさなければならない」とEich氏は述べている。
この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。
CNET Japanの記事を毎朝メールでまとめ読み(無料)
ZDNET×マイクロソフトが贈る特別企画
今、必要な戦略的セキュリティとガバナンス
地味ながら負荷の高い議事録作成作業に衝撃
使って納得「自動議事録作成マシン」の実力
ものづくりの革新と社会課題の解決
ニコンが描く「人と機械が共創する社会」