今、注目されているプログラミング言語「Rust」

★★★ イベント情報 ★★★
◇【参加登録受付中】Kong Summit, Japan 2022◇
今年は12月15日に開催決定!最新情報とデモとともにKongと事例/ユースケースのご紹介などAPIエコノミーやマイクロサービスに関心のある開発者の方にとっては必見です。ぜひお申し込みください!イベントの詳細・お申込はこちら

★★★ Live配信告知 ★★★
◇11月29日開催 19:00~ 世界一わかりみの深いクラウドネイティブon Azure◇
テーマは「Web App for ContainersとKeycloakで最速OpenID Connect」です!

◇11月30日開催 17:00〜 知ってると ちょっと便利なコマンド集◇
知っていると少し効率の上がるようなコマンドをいくつかご紹介します!

 こんにちは、吉田行男です。今回は、今、注目されているプログラミング言語「Rust」をご紹介したいと思います。

プログラミング言語の動向

 世界で最も大きなITエンジニアのコミュニティサイトである「Stack Overflow」が毎年実施している調査結果「Stack Overflow Developer Survey 2022(*1)を公開しました。180ヶ国、7万人を超える開発者を対象とした調査で、開発者の動向を知るうえでとても有用な調査結果になります。日本からの回答者は333人ということで、あまり参考にならないかも知れませんが、欧米での動向を知るには最適です。

その中で、最も使用されているプログラミング言語は、JavaScriptで、10年連続で首位をキープしています。2位以下は下記のグラフのように、HTML/CSSSQLPythonTypeScriptJavaが続いています。

 しかしながら、この調査では、『最も使用されている』というキーワードだけではなく、『最も好きなテクノロジー』ということでさまざまなデータを提供してくれています。もちろん、その中に『最も好きなプログラミング言語』というデータもあり、その結果を見てみましょう。

 この結果を見ると、必ずしも『使われている』技術を開発者が好んでいるとは限らないということがよくわかると思います。特に、使われている言語では、14位であった「Rust」が7年連続で1位になっています。「TypeScript」や「Python」は両方の上位に位置していますが、それ以外は必ずしもそうでもないというのが、興味深いところです。

 

「Rust」とは?

 Webブラウザソフトウェア「Firefox」を開発しているMozillaが支援するオープンソースのプログラミング言語で、2006年に開発がスタートしました。開発当初は、Mozillaに所属していたグレイドン・ホアレ氏の個人プロジェクトでしたが、2009年からMozillaが本格的に支援することになり、2015年に最初の安定版をリリースしました。

 「Rust」は、性能、メモリ安全性、完全な並行性をめざして設計されたプログラミング言語で、C言語やC++に代わりうるシステムプログラミング言語をめざしています。

 Linuxの生みの親であるLinus Torvalds氏は、20226月に米国オースティンで開催された「Open Source Summit(*2)」でRustについて、「メモリ安全性などをはじめとして、カーネルにRustを使うべき技術的な理由は十分にある。そして、そのために頑張っている人もいる。なので、私はそれがうまくいけばいいと思っている」とコメントしています。早ければ次のメジャーリリースにRustが使われる可能性もあるようです。

 また、20214月にGoogleは、公式ブログ(*3)Androidオープンソースプロジェクト(AOSP)がモバイルデバイス向けオープンソースOSAndroid」の開発において、オープンソースのシステムプログラミング言語「Rust」の導入を進めていることを明らかにしました。Androidでは、これまで「C」や「C++」を使用して開発されてきましたが、こちらもやはりメモリ安全性などのバグを予防することが目的です。

 さらに、今年(2022)7月にMeta(Facebook)が、高いパフォーマンスが要求されるバックエンドサービスの開発にはC++とRustを使うよう、同社のエンジニアらに推奨していることを(*4)明らかにしました。明らかにされているガイドラインによると、

  • パフォーマンスが重視されるバックエンド サービスには、C++ Rust
  • CLI ツールについては、Rust
  • ビジネス ロジックと比較的ステートレスなアプリケーションの場合、Hack
  • データ サイエンス、ML アプリケーション、Instagram では、引き続き Python が最適な言語
  • Java、ErlangHaskellGo などは、特定のユースケースでのみ使用

 このようにIT業界で、続々とRustが普及しようとしていますが、さらに別の理由でこのRustを採用している企業もあります。

 

Rustによる持続可能性

 20222月に公開されたブログ「Sustainability with Rust(*5)によると、AWSは、持続可能性という視点で、Rustの活用を推進しようとしています。

 国際エネルギー機関(IEA)によると、世界中でデータセンタは、年間約200テラワット時を消費しています。これは、地球上で消費される全エネルギーの約1%に相当します。

(出典:IEA (2021)、データセンタタイプ別グローバルデータセンタエネルギー需要、2010 2022 年、 https://www.iea.org/data-and-statistics/charts/global-data-centre-energy-demand-by-data-centre-type-2010-2022)

 このグラフにあるように2010年以降、全体の消費量にあまり変化はありませんが、従来型、クラウド、およびハイパースケールの分布が劇的に変化しています。

 なかでも、AWS2025年までにデータセンタの100%を再生可能エネルギーで稼働させることを掲げていますが、それだけではまだまだ不十分だと考えているようです。

 2017年に発表された論文「Energy Efficiency across Programming Languages(プログラミング言語別のエネルギー効率)(*6)によると、プログラミング言語とエネルギー消費、パフォーマンス、メモリ使用量の相関関係に興味深い内容が記述されています。

 この調査では、27の異なるプログラミング言語に10のベンチマークを実施し、実行時間、エネルギー消費及びピーク時のメモリ使用量を測定しました。結果は下記の表のようになっており、CとRustは、エネルギー効率や実行時間において他の言語を大幅に上回っていることがわかります。

 

なぜ、Rustは拡がらないのか

 これまでご紹介したようにRustに対する期待は、非常に高いものがありますが、冒頭でご紹介したようにまだまだ利用されていないのが現状です。では、なぜ、Rustの利用が拡がらないのでしょうか?これは、Rustの開発チームが開発者を対象に実施している調査が回答になっているかも知れません。ここからは、この少しだけ前の調査結果(*7)を見てみたいと思います。

 Rustの利用をやめた理由は、「自社がRustを使っていない」という回答が最も多かったわけですが、他の上位の理由は「習得が大変」「必要としているライブラリがない」「移行すると作業能率が落ちる」「IDE(統合開発環境)でのサポートが不十分」などとなっています。ということで、「使われていない」から「使わない」という堂々巡りのような状態になっています。

(出典:Rust Survey Teamの調査結果)

 

また、Rustの採用を促進するための方策はという質問に対しては、下記のような回答になっています。

(出典:Rust Survey Teamの調査結果)

 

 ここでは、「トレーニング/ドキュメントの充実」「ライブラリの充実/改善」「IDEの統合」が上位になっています。

 要するに、習得するためのトレーニング/ドキュメントが充実して、使いやすいライブラリが充実して、各種IDEとの統合ができれば、普及するのではないかということになり、GoogleMetaAWSなどのベンダーやLinuxAndroidなどのOSで活用が進めばこのような問題も解決していくことになるかも知れません。

 いずれにしても、今後のRustの活用が進んでいくことになりそうなので、動向を注視していく必要があると思います。

 

(*1) Stack Overflow Developer Survey 2022
https://survey.stackoverflow.co/2022/
(*2) Open Source Summit
https://events.linuxfoundation.org/open-source-summit-north-america/
(*3) Rust in the Android platform
https://security.googleblog.com/2021/04/rust-in-android-platform.html
(*4)Programming languages endorsed for server-side use at Meta
https://engineering.fb.com/2022/07/27/developer-tools/programming-languages-endorsed-for-server-side-use-at-meta/
(*5) Sustainability with Rust
https://aws.amazon.com/jp/blogs/opensource/sustainability-with-rust/
(*6) Energy Efficiency across Programming Languages
https://greenlab.di.uminho.pt/wp-content/uploads/2017/10/sleFinal.pdf
(*7) Rust Survey 2019 Results
https://blog.rust-lang.org/2020/04/17/Rust-survey-2019.html

著者:
吉田 行男
2000年ごろからメーカー系SIerにて、Linux/OSSのビジネス推進、技術検証、OSS全般の活用を目指したビジネスの立ち上げに従事。社内外でOSS活用に関する講演、執筆活動を行ってきた。2019年から独立し、さまざまな会社や団体の顧問として活動。OSSの活用やコンプライアンス管理などを支援している。

 

【動画】ゼロから始めるRust入門

プログラミング言語のRust入門の概要からインストール・動作確認を行います。

 

オープンソースの導入・サポートのことなら、サイオステクノロジーOSSよろず相談室
オープンソース導入・サポートのことなら、サイオステクノロジーOSSよろず相談室へ




ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!


ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。

Be the first to comment

Leave a Reply

Your email address will not be published.


*


質問はこちら 閉じる