開発者のRusthへの愛情が、実世界での採用に反映されつつある。
2020年6月2日、TIOBEは、初めてRustがTIOBE indexのトップ20に入ったことを発表した。
TIOBE indexは、実使用におけるプログラミング言語の人気を長年にわたって調査しており、現在のリストにおけるトップ5はC、Java、Python、C++、C#である。RustはCとC++の直接的なライバルであると同時に、レベルとしては劣るが、JavaやC#のライバルである。
Rustの上昇には前兆があった。StackOverflowの"最も愛されたプログラミング言語"の調査では、50,000を超える調査対象の開発者から、5年連続で80パーセント以上の支持を集めている。 先日JetBrainsが行った開発者調査でも、20,000人近い返答者の8パーセントが、来年Rustを習得する計画がある、と答えている — これはプログラミング言語としては、最も成長の早いものになる。事実として、JetBrainの調査によれば、上司の指示や業務に関係なく(ホビープロジェクトなどで)、67パーセントの開発者がRustを使用しているのだ。
現在使用している人よりも、採用を予定している人の方が多いプログラム言語は、おそらくRustだけでしょう。― Redditユーザ u/gilescope
一方で、Rustの人気が高まるにつれ、TIOBEのランキングからも明らかなように、Rustで収入を得る開発者の数もますます増えている。RustはMozillaやDeno、Polkadotといった、有名なオープンソースプロジェクトでも採用されるようになった。DropboxやMicrosoft、Cloudflareなど、多くの企業が採用していることも、業界での普及を大きく後押ししている。
Rustは、Cに匹敵するハイパフォーマンスなソフトウェアを、CやC++の悩みであるメモリ関連のバグを伴わずに実現可能にする。Microsoftは、同社のソフトウェアにおける重大なバグの70パーセントがメモリ安全性に関わっており、この傾向は減少していない、と述べている。20年以上前、このクラスのバグを削減するために、JavaやC#といったマネージド言語が広く採用された。Java仮想マシンや.Netなどマネージド言語のランタイムは、実行時にガベージコレクション(GC)を使用することでこれを実現している。その一方でGCは、無視できないランタイムオーバーヘッドも発生させる。これはアプリケーションのパフォーマンスを低下させるだけでなく、より大きな問題として、パフォーマンスを予測不能なものにする。
Rustの設計目標は、GCやランタイムオーバーヘッドを伴わないメモリ安全性を達成することだ。Rustは、Cポインタのゼロコスト抽象化を提供する。信じられるだろうか?そう、そのトレードオフは通常、メモリ使用規則を強いる厳格なコンパイラだ。Rustは強く型付けされた言語デザインと、高度なコンパイラツールチェーンを備えている。使用した開発者の反応は極めて良好だ。
その安全性とパフォーマンスによって、Rustは、システムアプリケーションにおいて、CとC++に代わる理想的なプログラミング言語となっている。しかしながら、Rustの人気はシステムアプリケーションに留まらない。数か月前、Rustコミュニティは、独自に行った開発者調査の結果を発表した。それによると、大部分の開発者がWebアプリケーションを書くためにRustを使用している一方で、IoTやブロックチェーンなどの分野でもRustがトレンドになっている。
Rustは安全で効率のよいバイナリにコンパイルすることが可能だが、Rustアプリケーションをランタイムコンテナ内で実行する必要のあることも少なくない。このようなコンテナは、さらなるメモリ安全性やアクセスセキュリティ、コードのアイソレーション、管理性といったものを提供してくれる。ブラウザ外では、RustプログラムはWebAssemblyにコンパイルされて、Node.jsやDenoからブロックチェーンまでのホスト環境で実行される。
システム言語としてのRustには、多少の学習曲線を持っているが、Rustを始めるためのチュートリアルも豊富にある。Rustの旅を始めるならば、チュートリアルやサンプルプログラムをチェックしよう。
プログラミング言語Rustは、MITライセンスとApacheラインセンス(バージョン2.0)によるデュアルライセンスのオープンソースプロジェクトである。コントリビューションは歓迎だが、Rustコントリビューションガイドラインに従うことが条件だ。