BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース RustConfがRustの成長とともに目指す、より開放的なコミュニティ

RustConfがRustの成長とともに目指す、より開放的なコミュニティ

原文(投稿日:2020/08/31)へのリンク

Rust開発者を対象とした初の年次開催カンファレンスであるRustConfが2020年8月、オンラインで開催された。終日開催のカンファレンスには、世界中からRust開発者とコミュニティが参加した。講演は技術的に高度な内容から初心者向けの紹介、ゲームや子供向けアクティビティまで、幅広く行われた。そこにあるメッセージは明らかに、"Rustはメインストリームに相応しい言語になった"、というものだ。

Rustは最も急成長を遂げたプログラミング言語のひとつである。2020年には、TIOBEの最も人気のあるプログラム言語トップ20の仲間入りを果たした。急成長の理由は、それを取り囲む熱心なコミュニティの存在にある。StackOverflowによると、Rustは過去5年間で最も愛されたプログラミング言語なのだ。

一方でRustは、学習が難しく、取っつきにくい言語だという評判もある。PythonやJacaScriptといった言語がメモリ管理などの複雑性を隠しているのに対して、Rustでは最初から正しく効率的なコードを書くことが強調されているからだ。その結果、RustはC/C++を出身とするシステムプログラマの支持を集める反面、アプリケーション開発者にとっては学習曲線の急勾配な言語となっている。Rustが主流プログラミング言語へと登るにつれ、さまざまなバックグラウンドやスキルレベルの開発者を考慮した、開放的な(inclusive)ものになる必要が生じている。間口を広くすることが今年のRustConfのテーマだ。

Rust grows into a mainstream programming language.JPG

Rustの最もパワフルなツールのひとつがコンパイラだ。初心者にとってもベテランにとっても、Rustコンパイラは、ペアプログラマか個人的なチュータのように動作する。ソースコードにエラーを見つけると、その場所を指示するだけではなく、間違いの理由や修正方法の提案もしてくれる。Esteban Kuber氏の講演 "Bending the Curve: A Personal Tutor at Your Fingertips" で、Rustコンパイラによる支援がどのようなものか、詳しく見てほしい。この講演は、新しいRust開発者には特にお勧めだ。

有用かつ教育的なコンパイラエラーメッセージというアイデアを拡張して、Jane Lusby氏の "Error Handling Isn't All About Errors" と題された講演では、Rustのランタイムエラー報告の改善に向けた新たな活動が論じられている。新たなツールとライブラリにより、エラーの根本原因のトレースとエラーメッセージ表現という、直行する問題の分離が可能になっている。さらには、Rustアプリケーションのエラー処理とリカバリに関する、よりエレガントな方法も提供されている。

マクロはRustを開放的で、初心者フレンドリなものにしてくれる。例えばRustの公式なHello Worldプログラムでは、"hello world"メッセージをSTDOUTに出力するためにprintln!マクロが使用されている。経験を積んだ開発者にとっても、マクロはRustプログラムを理解しやすく、書きやすいものにしてくれる存在だ。jam1garner氏の講演 "Macros for a More Productive Rust"は、このRust言語機能の優れたイントロダクションである。

Rust言語とコンパイラの設計思想が理解できれば、次は最初のRustプロジェクトを構築する時だ。RustConfの参加者の大部分は初心者ではないが、カンファレンスには初心者レベルの講演がいくつか含まれており、自宅でカンファレンスのビデオを見ようという新しい開発者には朗報となっている。Micah Tigley氏の講演 "My First Rust Project: Creating a Roguelike with Amethyst" では、Rustでゲームを開発した氏の経験が論じられている。Harry Bachrach氏の講演 "How to Start a Solo Project that You'll Stick With" は、ホビープロジェクトとしてRustでCLIツールの開発を始めた氏の記録を紹介したものだ。

Rustはオペレーティング・システムや仮想マシン、Webブラウザ、その他ハイパフォーマンスシステムのようなシステムプログラミングのための素晴らしい言語だが、カンファレンスではアプリケーションプログラミングにおけるRustの有用性も伝えている。Rebecca Turner氏の講演 "Rust for Non-Systems Programmers" では、アプリケーション開発者にとって有益かつ生産的なものとなるRust言語の機能を論じている。Ashley Hauck氏は"Controlling Telescope Hardware with Rust" という、IoTデバイスを扱うRustアプリケーションを取り上げた興味深い講演を行っている。巨大なものから、次には非常に小さなものに目を移すと、Samuel Lim氏は講演 " Under a Microscope: Exploring Fast and Safe Rust for Biology" で、生物科学プログラミングにおけるRustアプリケーションを取り上げている。

closing keynote

カンファレンスの最後は、Siân Griffin氏の基調講演 "Pokemon games" で締め括られた。その内容は、ポケモンゲームが開発された時にRustが存在していれば、ゲームのバグの多くは防げただろう、というものだ。ただし、ゲームプレーヤの多くは、実際にはバグやチートコードもポケモンゲームの面白さの一部だと考えている。それによってゲームがより予測不能なものになっているのだ。人を喜ばせるのは難しい!

パンデミックによる仮想形式ということはあったが、RustConf 2020は興味深く、情報の豊富なカンファレンスになった。Rustプログラミング言語の今後の成長は、コミュニティがその熱意を、システム開発者以外に対してどれだけ広げられるかにかかっているだろう。Rustの学習に興味があるのであれば、ここから始めることができる。

この記事に星をつける

おすすめ度
スタイル

特集コンテンツ一覧

BT