島根県で「Ruby尽くめ」の1週間 ー開発者・まつもとゆきひろ氏が語った30年とこれから
島根県で、プログラミング言語「Ruby」の自由さや楽しさ、コミュニティへの貢献という価値観を表現するキャンペーンとして「Ruby Week」が開催された。これまでも開催していた「Ruby biz Grand prix」「RubyWorld Conference」「Ruby Prize」の3イベントを1週間にまとめるとともに、数多くの取り組みを実施。エンジニアやビジネス関係者が数多く島根を訪れる期間となった。
Ruby Weekの中心である3イベントのうち、最も歴史が深いRubyWorld Conferenceは、今回で15回目の開催。国内最大級のビジネスカンファレンスとして、Rubyの先進的な活用事例や技術動向などを発信し、ビジネスとを結ぶ懸け橋として機能してきた。
本記事では、同カンファレンスの基調講演として、Rubyの生みの親であるまつもとゆきひろ氏が話した「30 Years of Ruby」の内容を中心にお届けする。
プログラミング言語は
シンプルすぎても高機能すぎてもいけない
まつもと氏の基調講演は「歴史から学ぶ教訓」として、Rubyが「誕生」した1993年から30年間の歩みとともに、プログラミング言語の歴史を振り返る内容だった。
冒頭では、Rubyが誕生したきっかけが明かされた。もともとはプログラミング言語を作りながら学ぶ書籍企画の一環としてRubyの開発に着手。書籍企画は途中で頓挫してしまったが「もうすでに新たに言語を作り始めていたので、捨てるのも惜しかったので、開発を続けました」とまつもと氏は振り返る。
その後、1993年2月24日にRubyが誕生する。当時は「Perl」の人気が高かったことから、宝石から名前をとることにしたという。いくつかの候補がある中で、文字数が少なく、宝石として美しく価値も高い「ルビー」を名前に選んだ。
Ruby誕生当時を振り返った後、話題は「世界で最初に作られた」とされる言語に及んだ。まつもと氏によると、最古とされるプログラミング言語は1942年から設計された「Plankalkul(「u」はウムラウト付き)」だ。当時はまだ「プログラミング」という言葉すら存在していなかったが、ドイツの研究者であるコンラート・ツーゼ氏によって設計されたという。
「『チューリング完全(計算完備)』であり、サブルーチンや例外処理機能、Prologの実行機能もあったとされ、現代から見るとオーパーツのように感じる高度なものでした。しかし、Plankalkulのレポートは誰からも注目されず、最初のコンパイラが開発されたのは1998年です」(まつもと氏)
当時としてはかなり高度な機能を有するにもかかわらず、なぜPlankalkulは長く日の目を浴びなかったのか、まつもと氏はここから得られる教訓として「アイデアだけでは、十分ではない」と指摘する。つまり、どんなに高度なものでも、多くの人が使うことで、初めて意味がある。「アイデアは最初から完成している必要はなく、段階的にブラッシュアップしていければ良いと言えます。当初の完成度ではなく、多くの人に使ってもらいながら洗練されていくことこそが重要ではないでしょうか」とまつもと氏。
多くの人が使うことを考えると、プログラミング言語はシンプルな方が良いのではないかとも感じる。しかし、そう簡単な話でもないようだ。
比較的単純なプログラミング言語として、まつもと氏は「Lisp」「Forth」「APL」の3つを挙げた。しかし、これらの言語は今や見る機会は少ない。なぜか。
「Perlを開発したラリー・ウォールの書籍に書いてあったと記憶しているのですが、プログラミング・アプリにおいてそれぞれのシンプルさと複雑さはトレードオフなのです。つまり、言語がシンプルであればあるほど、アプリが複雑化します。一方、言語がシンプルであればアプリは複雑化する傾向があります。そもそも人間の精神や社会は複雑なものです。そのため、プログラミング言語がシンプルであることは『最強』ではないのです」(まつもと氏)
もちろん言うまでもないが、複雑であることも良くない。1960年代、数値計算と事務処理を個別の言語で行っていたものを統一しようと考案された「PL/1」や、その後に「米国・国防総省の業務全てに対応する言語」を目指してとして開発したとされる「Ada」は、その複雑性がゆえに浸透しなかった。「『大きいことは良いことだ』と言われることもありますが、システムに関しては当てはまらないのです」(まつもと氏)
Perlから学ぶ教訓
「精神的・哲学的に影響を受けた」(まつもと氏)というPerlにも話が及んだ。1986年に誕生したPerlは、11月9日時点での最新バージョンが「5.38.0」。驚くべきは、ベースとなっている「5.0」のリリースが1994年という点だ。
もちろん、これまでに「6」の構想はあった。多くのPerlエンジニアが参加した2000年のカンファレンスでは、Perlの停滞を憂えたメンバーが行動を起こすなどして、RFC(Request for Comments)として修正点や新たなアイデアを募集することに。350超もの提案が集まったが、開発は難航。その後、2015年に「Perl 6」としてリリースされたが、2019年には「Raku」へと改名され、現在はPerlと異なるものとされている。
Perlの事例を引きながら、まつもと氏はプログラミング言語における「停滞」の危険性を話す。雇用契約や給与がなく、コミュニティの強い拘束力がないプログラミング言語にとって、コミュニティを中心に動き続ける・前進し続けることが長く生き残るために必要なのだという。
とは言え、劇的な変化もリスクを伴う。講演では「第2システム症候群(Second System Syndrome)」という言葉が紹介された。何かがうまくいかないときに、新たなものを生み出して目的の達成を目指すのは自然な感情だ。一方「こうしたスクラップアンドビルドがうまくいったことは、ほとんどありません」とまつもと氏。厳しい状況に置かれたときこそ、急激な変化ではなく段階的な進歩が求められるとした。
RubyもPerlと同様に、2000年代の初期に「第2システム」を標榜したことがあるという。「理想のRuby」へとアップデートするため、大幅な変更も含めたアップデートを画策。コンパイラやライブラリの書き直しを検討し、RFCも募集したが「自分がルーズで、記録なども苦手なことから、結局やりませんでした」とまつもと氏。「振り返ると、このときばかりは自分が面倒くさがりで良かったと思いました」と笑いながら振り返った。
今後はより
「仕事とお金」に結び付く言語としてアピール
ただ、段階的なアップデートは続けている。2013年に2.0、2020年に3.0へのアップデートを果たし、「昔から欲しかった機能の9割は実装できた」(まつもと氏)。講演で挙がった数多くの教訓から、今後Rubyが生き残るための結論は「コミュニティの重要性」とした。
「何もしなければ、コミュニティの平均年齢が毎年、1歳ずつ上がっていくだけです。若いエンジニアを引き付け、新陳代謝することが重要だと考えています」(まつもと氏)
そのための条件として「仕事とお金」を挙げたまつもと氏。企業活動にとってRubyが重要であることを発信しながら、多くの人をRubyとコミュニティへ呼び込んでいきたいと意気込みを語った。
中でもポイントとしたのが生産性だ。アップデートやサポートツールの改善だけでなく、その他にも数多くの取り組みを通して、これまで以上に生産性を改善していく意向を語った。2020年のアップデートでは10〜20%のパフォーマンス改善も果たしており、企業規模が大きいほどに効率化の効果は高まる。多くのエンジニアがRubyを活用することで企業側に削減できるコストなどへ気付いてもらい、さらなる投資を期待する。
間口が広いこともRubyの魅力だろう。教科書やチュートリアル、事例コンテンツが数多く存在しており、言語そのものも使用ハードルが低いことから、初心者でも比較的始めやすい。実際、基調講演でまつもと氏が「今回初めてイベントに参加した人」に挙手を呼び掛けた際も、会場の半数程度か、それ以上が挙手したように見受けられた。
講演の最後では、Rubyのハイプ・サイクルに話が及んだ。一般に新たな技術が登場した際は、一気に人気が高まり過大な評価を受ける時期を経て「幻滅気」「回復期」の後に「安定期」が訪れるとされる。
現状のRubyは安定期だと分析している。だからこそ、停滞が生まれかねず危険な時期である——とまつもと氏は危機感をあらわにする。その上で、次のように締めくくった。
「書店に足を運ぶと、ブームの言語に関する書籍がたくさん並んでいる一方で、Rubyの書籍が少ないこともあるのは悲しく感じます。一方でRubyは素晴らしい言語であり、アプリを生み出すこと、あるいは何かサービスを作ってスタートアップを立ち上げるときには特に向いているはずです。
本日の『教訓』としても話しましたが、アイデアや機能の素晴らしさも必要とはいえ、本当に重要なのは多くの人が実際に活用することです。ぜひ、多くの方に活用いただき、楽しくプログラミングをしてもらい、より良いサービスを作り上げ、世界そのものを良くしていきたいと考えています。Rubyにはその価値があります。これからも一緒に、Rubyをブラッシュアップしていきましょう」
Ruby biz Grand prixは
ウーオとピクシブが大賞に
今回で9回目の開催となったRuby biz Grand prixでは、大賞に株式会社ウーオとピクシブ株式会社の2社が選出された。ウーオは、水産業の流通をDXするプラットフォームを手掛けている企業で、表彰式に登壇した同社CPOの土谷太皓氏は「Rubyのおかげで自社が成長できていると感じます。今後も合同勉強会などを通して、コミュニティに貢献していきたいです」と語った。
ピクシブはユーザーのクリエイティブ活動に資する数多くのサービスをRubyで開発している。同社CTOの道井俊介氏は、表彰式で「当社の多岐にわたるサービスのベースにはRubyコミュニティの存在があります」とコメント。サービス構成の共通化などでRubyが効果を発揮していると語った。
表彰式の最後には、審査委員長のまつもと氏がコメント。大賞に選出したポイントについて、ウーオは島根県が属する山陰地方の強みである魚に関する領域をRubyで改革していること、ピクシブは長年コミュニティへ貢献していることや、非エンジニアに対する知名度なども考慮したと語った。
「果敢に取り組んでいる各社には感謝を申し上げたいですし、今後もどんどんRubyを活用して、儲けてほしいと考えています。Rubyを“創造”した者として、未来を作り、社会をより良くするために、ぜひRubyのビジネス活用を続けていただきたいです」(まつもと氏)
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- Rubyを用いたビジネス事例、今年の大賞は ――「第3回 Ruby biz Grand prix」レポート
- 米GoogleがCloud Foundry Foundationに参加、ほか
- アップルのSwiftオープンソース化の狙いとは、大賞は2社―第1回Ruby bizグランプリ発表、ほか
- Red5とその他のオープンソースFlash技術
- 3つのパートに分けて紹介!今すぐ分かるプログラミングの始め方
- 「前例がないことへの挑戦」ー まつもとゆきひろ氏インタビュー 15周年を迎えた「Ruby City MATSUEプロジェクト」のこれまでとこれから
- 【データから紐解く!】2017年の人気プログラミング言語を徹底比較!
- 人気軽量プログラミング言語5選
- 元・日本ユニシスの50代ベテラン技術者が「SI脳」と「Web脳」のハイブリッド開発で生み出した『Brappi!』
- 【学習タイプ別】入門向け!Pythonの学習サイト10選