ニュース
» 2020年06月11日 10時30分 公開

「最も愛されている言語」ランキングで5年連続首位の背景とは:「Rust」はなぜ人気があるのか、Stack Overflowがユーザーのコメントを紹介

開発者向けQ&Aサイト「Stack Overflow」は、先ごろ発表した年次開発者調査の結果を受け、プログラミング言語「Rust」が人気を集めているさまざまな理由について、ユーザーの生のコメントを紹介した。速度を犠牲にせずにメモリ安全性を確保できる点が魅力的だが、それだけではない。

[@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

 開発者向けQ&Aサイト「Stack Overflow」は2020年6月5日(米国時間)、オープンソースのシステムプログラミング言語「Rust」がなぜ人気を集めているのか、ユーザーのコメントを紹介した。同サイトのRustチャットルームと、Rustのユーザーフォーラムから集めたものだ。

 Stack Overflowが2020年5月に発表した年次開発者調査「2020 Developer Survey」では開発者を中心に約6万5000人が参加した。Rustは2016年の調査以来5年連続で、最も愛されている言語のランキングで首位を獲得した。

 これを受け、Stack Overflowは同言語のチャットルームとフォーラムで、ユーザーが支持する理由についてコメントを募った。今回紹介したのはそのうちの抜粋だ。多くはRustユーザーフォーラムに寄せられたもの。

 Stack Overflowはユーザーの声を紹介するのに先立ち、同サイトの従業員の中でRustのコントリビューターとして最も実績のあるジェイク・グールディング氏(ハンドルネーム:Shepmaster)が、Rustの人気の理由について語った次の言葉を紹介している。

 「一言でいえば、Rustは、他の多くの言語が持つ問題点を解決している。欠点はあるものの限られている。さらに着実に進歩しつつある」

全く新しい、よく考えられた機能を備えている

 Stack OverflowはRustの機能について触れたユーザーのコメントを次のようにまとめた。

 「既存のコンセプトに磨きをかけ、使いやすさを高めることに終始している言語は他にもある。だが、コメントを寄せたユーザーの何人かは、Rustはプログラミング言語として革新を遂げていると感じている。単に人目を引くためではない。『Rustは、新しい設計を採用することで、モダンプログラミングの困難な課題を解決する』と認識している」

 続いてRustの機能に関するユーザーのコメントの一部を紹介する。

ZiCog氏 「私は仕事で40年間、十数種類のプログラミング言語を使ってきた。Rustは、全く新しい機能を導入している唯一の言語だ。メモリを安全に利用するために(他の言語が採用しているような)ガベージコレクションも複雑なランタイムシステムも利用していない。コンパイル可能なシステムプログラミング言語でもある」

Denys Sëguret氏 「env変数を偽装してコンパイルコンテキスト要素を読むような非常に強力な機能を発見したとき、Rust言語に対して熱狂的な思いに駆られることがある」

janriemer氏 「npmのエンジニアであるChris Dickinson氏の名言が、私の考えを完璧に要約している。『Rustはつまらない(おかしなところがない)というのが私の最大のほめ言葉だ』」

 「Rustは、ユーザーエクスペリエンスデザイナーによって開発されたように見えるプログラミング言語だ。開発チームは明確な言語ビジョンを持っている。どの機能を追加するか、どの機能を見直すかを慎重に選択しており、コミュニティーの要望に耳を傾けている。全てが一貫しており、開発者のワークフローを完璧にサポートしている」

skysch氏 「私はHaskellを使っていて、その後Rustに出会った。今でもHaskellは非常にエレガントで安全な言語だと感じている。私にとってRustが良いと考えられる点は、高性能なコードと定型化した『クリーンな』コードとの間にあまり差がないことだ。ほとんどのRustのコードは、たとえ高性能なコードであっても、他のRustのコードと同じように見える。通常使っているものとは異なるライブラリを使ったり、特定の目標を実現しようとしたりしたとき、Haskellのコードはすぐに見慣れないものになってしまう。構文の小さな違いが動作の大きな違いにつながるのだ。Rustではそのようなことが少ない」

Jay Oster氏(PubNubのアーキテクト) 「Rustは、安全でパフォーマンスが高いだけでなく、次のような機能を備えている」

  • ジェネリック型
  • トレイト
  • 代数型
  • マルチパラダイム
  • おそらく世界で最も優れた依存関係管理ツールとビルドツールを備え、「依存関係地獄」の問題を実質的に解決
  • インラインドキュメントとテスト、ベンチマークの素晴らしいサポート
  • ライブラリや抽象化、ツールについてエコシステムが成長中
  • 手続きマクロ
  • 既存コードとのFFI(他言語関数インタフェース)相互運用性
  • 数十のプラットフォームのサポート
  • 有益で、間違いなく満足のいく開発者エクスペリエンスの提供

 「さらにRustは、以下を全て兼ね備えた唯一の言語だ」

  • メモリ安全性
  • 型安全性
  • データ競合が発生しない
  • AOT(Ahead-of-time)コンパイル機能
  • ゼロコスト抽象化に基づいており、これを促進する
  • 最小限のランタイム(ガベージコレクションやJITコンパイラ、VMがない)
  • 少ないメモリ使用量(小型マイクロコントローラーのようにリソースの制約がある環境でもプログラムが動作する)
  • ベアメタルをターゲットにできる(例えば、Rustを“高次アセンブラ”として使い、OSカーネルやデバイスドライバを作成できる)

daboross氏 「Rustのコンパイル時保証は、JavaやC#、TypeScriptといった他の静的型付け言語と比べて優れている。コンパイル時にスレッド安全性、オーナーシップセマンティック、バリデーションもチェックするからだ」

 「Rustは非常に下位互換性が高い。Rust 1.0で書いたコードを実行できるし、自分が書くコードは、次にRustがアップデートされても、更新する必要がないと安心していられる。Rust自体だけでなく、ライブラリについても、こうした高い下位互換性が保証されている」

Peter Varo氏 「Rustは、CやC++と同様の低レベルプログラミングが可能で、これらの言語と同じメリット(プログラムの制御やサイズ、スピードなど)を備えている。その一方で、Haskell並みの高次プログラミングにも対応しており、関数継承でも多数の関数をサポートしている。さらに、命令型プログラミングもサポートしているため、ほとんどの人にとって利用しやすい他、Pythonのように柔軟でもある」

blonk氏 「Rust/cargo(Rust付属の開発ツール)を使うと、ビルドシステムよりも実際のコードに集中できる。『Yet Another Build System』を読み上げるのに丸一日を費やす必要はない。Rustでのクロスコンパイルは信じられないほどシンプルでスムーズだ。試してみると『何かが足りないのではないか』と思うほど単純だ」

 「コードをデバッグする時間がとても短くなる。大規模なリファクタリングを恐れることもない。リファクタリングされたコードがいったんコンパイルを通れば、意図した通りに動作する。Rustでは適切なマルチスレッドを行うことを強制される(デッドロックすることもあるが、クラッシュしやすいタイプの困難なバグよりはましだ)。言語特有の定型コード(boilerplate code)を書く回数が格段に減った。必要な定型コードを別のモジュールに隠して、アプリケーションロジックのコードの邪魔にならないようにできる。最も一般的な例は、エラータイプの変換だ」

大規模プログラムの安全性とスピードに優れる

 Stack OverflowはRustの安全性と処理速度について次のように指摘した。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。