Facebook、開発言語に「Rust」採用 次期ビルドシステムの開発で
Facebookが次期ビルドシステムの開発に「Rust」を採用する方針を明らかにした。これまでは「Buck」を採用していた。
この記事は新野淳一氏のブログ「Publickey」に掲載された「Facebook、次期ビルドシステムの開発でRust言語の採用を明らかに」(2021年7月28日掲載)を、ITmedia NEWS編集部で一部編集し、転載したものです。
Facebookは同社のソフトウェア開発において、同社が主導して開発しているオープンソースのビルドシステム「Buck」を利用しています。
Buckは高速なビルドが可能な点を大きな特徴としており、もともとAndroidアプリケーション向けのビルドシステムとして登場しました。
その後対応する言語やプラットフォームが拡張され、現在では15種類以上のプログラミング言語と、さまざまなスマートデバイス、VRヘッドセット、そしてサーバアプリケーションにまで対応しています。
次期ビルドシステムの開発を決断
しかしこうした拡張を重ねる中でBuckの複雑さは増していき、新機能の追加がどんどん難しくなってきたと、Facebook Developersのブログに投稿された記事「The future of Buck」で吐露されています。
同社の開発チームは約4年前から、Buckのアーキテクチャの改善を段階的に行う取り組みを始めましたが、それは困難だと判断。
過去の互換性を保ちつつ、拡張が容易な新たなビルドシステムを新たなBuckとして開発すると表明しました。
下記は「The future of Buck」からの引用です。
The limited extensibility of Buck v1 has been a recurring source of pain for our community. With this new build system, we've focused on extensibility as a primary goal and every build rule is written outside of the core build language as a user-defined rule.
Buck v1の拡張性の低さは、私たちのコミュニティーにとって繰り返しの悩みの種でした。この新しいビルドシステムでは、拡張性を第一の目標とし、全てのビルドルールは、コアのビルド言語の外で、ユーザー定義のルールとして書かれます。
そして次世代Buckの開発にはRust言語を採用する方向であることも明らかにしました。
Rustを開発言語に採用へ
Rust言語はMozillaが開発し、コミュニティーベースで開発が進められてきた、C言語のように低レベルのシステム開発向けに作られたオープンソースのプログラミング言語です。
不正なメモリ領域を指すポインターなどを許容しない安全なメモリ管理や、マルチスレッド実行においてデータ競合を排除した高い並列性を実現している点などの特長を備えているため、安全かつ高速なアプリケーション開発を実現します。
今年、2021年2月にはRustの開発を推進するRust Foundationが設立されるなど、存在感が高まっています。
Rustを用いることで、どのような利点があるのか。Facebookは記事の中で次の4つの項目を挙げています。
Rust’s _async/await_ syntax makes writing asynchronous code really smooth and Rust helps get the complex concurrency details correct. Each migration of Buck’s Java computations to a concurrent computation was a months-long, difficult transition and there are still significant single-threaded bottlenecks there.
Rustのasync/awaitシンタックスは、非同期のコードをとてもスムーズに記述できますし、Rustは複雑な並行処理の詳細を正しく理解するのに役立ちます。BuckのJavaの計算を一つ一つ並行処理に移行するのは数カ月に及ぶ困難な作業でしたし、シングルスレッドの大きなボトルネックがまだ存在しています。
Rust has a lot of high-level language features that make development easier and more enjoyable. These are things like enums, pattern matching, traits, procedural macros and all the other features that contribute to Rust developers in general loving it so much.
Rustには、開発をより簡単で楽しいものにしてくれる多くの高レベルな言語機能があります。それらはenum、パターンマッチング、trait、手続き型マクロなどで、Rustの開発者の多くに愛されています。
Rust gives greater control over memory allocations. Garbage collecting languages (even with generational collection) have challenges dealing with incremental computations like Buck performs.
Rust はメモリの割り当てをより細かく制御することができます。ガベージコレクション言語は(たとえジェネレーショナルコレクションであっても)、Buckが行うようなインクリメンタルな演算に対応するのは困難です。
Rust is high performance. We’ve seen significant speedups from the translation of things into Rust.
Rustは高性能です。Rustに移植することで劇的な性能向上を私たちは見てきました。
Rustは2020年のStack Overflowの調査で、IT技術者からもっとも愛されている言語であることが示されています。
まだ日本ではRustによる本格的な開発事例は目立っていませんが、今後はRustの利用が広がると予想されます。
関連記事
- 「Python」の登録商標、米Python Software Foundationが再出願 登録済みの企業に不使用取消審判の請求も
プログラミング言語「Python」の開発を支援する米Python Software Foundationが、国内における「Python」の登録商標を5月に出願したことが明らかに。出願が無事に登録されれば、より安心してPythonの名称を使えるようになるとみられる。 - クラウドベースの“汎用原子シミュレーター” PFNの深層学習モデルで数万倍の高速計算
株式会社Preferred NetworksとENEOS株式会社の共同出資で設立された株式会社Preferred Computational Chemistry(以下PFCC)は、汎用原子レベルシミュレーター「Matlantis」(マトランティス)をクラウドサービスとして提供開始したことを発表した。 - フリーのITエンジニアやWebデザイナーも国の労災保険へ加入可能に 9月から
厚生労働省は9月1日に省令を改正し、フリーランスのITエンジニアやWebデザイナーも労災保険に加入できるようになる。厚労省の諮問機関がITフリーランス支援機構からヒアリング。保険料は個人負担、加入手続きは団体を通じて行う。 - WebAssemblyアプリ開発で最も使われている言語はRust C++、AssemblyScript、Blazor、Goが続く
メールマガジン「WebAssembly Weekly」を発行しているScott Logicは、WebAssemblyの利用状況などに関する調査報告を公開。WebAssemblyアプリケーションのプログラミング言語に関する調査では、Rustが最多、C++、AssemblyScript、Blazor、Goなどが続いた。 - ずっと無料で使えるクラウドの「Free Tier」主要サービスまとめ 2021年版
AWSやMicrosoft Azureなど各クラウドサービスで提供されている、期間の制限なくずっと無料で使える、いわゆる「Free Tier」や「Always Free」と呼ばれる無料枠のサービスをまとめた。
関連リンク
Copyright © ITmedia, Inc. All Rights Reserved.