編集部からのお知らせ
Topic 本人認証の重要性
宇宙ビジネスの記事まとめダウンロード

Facebookが「Rust Foundation」に参加--「Rust」言語をいかに活用してきたか - (page 2)

Liam Tung (ZDNet.com) 翻訳校正: 編集部

2021-05-02 08:30

 「RustConf 2019」でFacebookのソフトウェアエンジニアJeremy Fitzhardinge氏が説明したように、新しい言語を学ぶ時間や他の言語で書かれたプロジェクトにすでに投資した時間を考えれば、Rustの採用はリスクの高い、重大な決断だった。

 Fitzhardinge氏はRustを気に入っているという。コンパイル時に重大なバグを検出できるので、本番システムで実行時にバグが見つかるのと比べて、コストを格段に抑えられるからだ。

 MononokeプロジェクトでRustへの移行が成功すると、社内ではRustに対する関心が高まった。Facebookによれば、Rustに関心を持ったエンジニアの多くは、もともとPythonやJavaScriptを使っていたという。この2つが最も人気の高いプログラミング言語であることを考えると、これは注目に値する。Pythonは機械学習やバックエンドのシステムの開発で人気が高く、JavaScriptはウェブのフロントエンドのシステムで圧倒的なシェアを持つ。

 「彼らはRustのパフォーマンスの高さに加えて、コンパイル時のエラー検知能力を評価している。パフォーマンスが2~4桁向上したといった逸話が社内で広まるにつれて、Rustをバックエンドサービスのコードに使用したい、モバイルアプリにも適用できないかと考える者が出てくるなど関心が高まった」(Facebook)

 Facebookは2020年、C++の標準やツールチェーンなどへの対応も担うプログラミング言語ユニットにRustチームを新設した。

 新しいチームはRustのツールチェーン、Rustコンパイラーなどのコードレビュー、RustとC++コードの安全な相互運用の確保に取り組んでいる。

 「社内には大量のC++コードが存在する。それはサービスを支えるバックエンドシステムとのコミュニケーションに必要だ。開発者が、これらのライブラリーをRustの利点を犠牲にすることなく、Rustからも安全かつ容易に使えるようにしなければならない」とFacebookは説明する。

 「逆に、Rustのコンポーネントを既存のより大規模なC++バイナリーに組み込むためには、非同期コードにおけるランタイムの相互運用性を確保することが欠かせない。Facebookのサーバーは高度に分散化、スレッド化されている。C++のスレッドプールでもRustのタスクを円滑に動かし、同期プリミティブやI/Oリソースを安全に共有できるようにする必要がある」

 Rustチームは「C++20」のコルーチンもサポートし、すみやかに導入した。2020年9月に国際標準化機構(ISO)のワーキンググループ21(WG21)はC++20の最終版について合意した。

 「Rustの導入は、その延長線上にあるもので、Rustの非同期ライブラリースタックで起きているすばらしい取り組みをさらに強化するものとなるだろう」(Facebook)

この記事は海外Red Ventures発の記事を朝日インタラクティブが日本向けに編集したものです。

ZDNet Japan 記事を毎朝メールでまとめ読み(登録無料)

特集

CIO

モバイル

セキュリティ

スペシャル

NEWSLETTERS

エンタープライズ・コンピューティングの最前線を配信

ZDNet Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]