Sapporo RubyKaigi 2012 スペシャルレポート

札幌Ruby会議2012,2日目レポート[更新終了]

この記事を読むのに必要な時間:およそ 18.5 分

まつもとゆきひろさん「One size does not fit all」

2人目の基調講演はご存知Rubyの生みの親,Matzこと「まつもとゆきひろ」さんです。まつもとさんはRubyKaigiでは基調講演皆勤賞で,また札幌で開催された札幌Ruby会議03に引き続き今回の「札幌Ruby会議2012」でも基調講演を引き受けていただきました。

本セッションではまつもとさんがコードを書く,ということについて感じることやモチベーションが生み出すこと,そして多様化するRuby処理系について語りました。

We Code.

まつもとさんはまずコードを書く人に向けて話をすると宣言し,コードを書くことについての思いを話し始めました。コードを書くことは自分の存在意義でありとても幸せなこと。よくプログラマの35歳定年説と言われていますが,以前まつもとさんもその例に漏れずプロジェクトマネージャを任されたことがありました。コードを書く事が好きなプログラマにとっては実に砂を噛むような仕事をやらなければならず,結果的にそのプロジェクトは大炎上してしまったそうです。しかしそれが功を奏し,今もプログラムを書き続けることができて幸せだといいました。

Rubyは1993年2月から始まった

まつもとさんはなぜRubyを生み出したのでしょう。最近ある人からこんな質問を受けたそうです。⁠どうしてPerlがあるのにRubyを作ったのか。車輪の再発明だし人的リソースの無駄遣いなのではないか」と。まつもとさんはこの質問に対し,もっとも大事なのは人的リソースではなく,何かを創りだそうとするモチベーションだと主張しました。新しいプログラミング言語を作りたいというモチベーションをもった人に,それを諦めさせることは偉大なことを成し遂げる可能性を失うことになると話します。

作りたいものがたとえ車輪の再発明だとしても,やりたいというモチベーションがあるのであれば,まつもとさんはそれをやるべきと言います。なぜなら多様性は善であると信じているからです。この言葉はまつもとさんが自分の中で持つルールの中でも上位に位置する大事な言葉とのことです。

また世の中に数万は存在すると言われているプログラミング言語を例に挙げ,多様性にはコストがかかるが,それはイノベーションを生むためのコストになりえると言います。しかし実際にイノベーションがどうして起こるのかは誰もわかっていなく再現性も無いため,例えばまつもとさんと同じようにしようとしても上手くいくとは限りません。だから余計な心配をせず,自分がコードを書くことにアイデンティティを感じるのなら楽しくコードを書こう。そしてハッピーになろうと述べました。

広がるRubyの世界

まつもとさんはTwitterやGitHub,Square,Heroku,EngineYard,Cookpad,楽天などでRubyが使われている有名なサービスを例に挙げ,RubyはWebの世界で多く使われるようになったと言います。多様性を善とするRubyはこれまで様々なプラットフォーム環境下で動作する処理系が開発されており,具体的にはJRubyやRubinius,MagLevについてそれらの特徴を示しました。様々な処理系が存在することによって今では多くの環境にてRubyを活用することができています。

Web,PC以外にもソフトウェアが活用されている領域として,モバイルフォンや情報家電,自動車,ゲーム機などの組み込みの分野があり,まつもとさんはこれらを含めたあらゆるところでRubyを使いたいと述べました。

そこでまつもとさんはmrubyを作り始めました。mrubyの最大の特徴は組み込み向けのAPIを持っているということです。リアルタイム性を高めるためにGCはインクリメンタルGCを採用しており,軽量化のためにIOや正規表現などのいくつかの機能を外しています。

様々なデバイスで動作することのできるmrubyはiPhoneやAndroidはもちろんのこと,ルーターや自動販売機,LEGO mindstormsに組み込まれた実績もあるとのことです。ソースコードは今年4月にGitHubにMITライセンスで公開されているので自由に試すことができます。

We Code, Therefore We Are.

最後にまつもとさんは"We Code, Therefore We Are."「我らコードを書く,故に我らあり」と言及し,これが私達のアイデンティティであるとしました。⁠私達が私達の幸せを,コードを書くことに探すならば,幸せを見出すことができるのではないか。幸せになっていただきたい」という言葉を残して本セッションを締めくくりました。

画像

画像

Danish Khanさん「Γυβψ のコミュニティ」

GitHubのDanish Khanさんが,Rubyのコミュニティにおいて取るべき行動について発表ししました(スライド等はこちら)⁠ここでいうコミュニティとは,ソフトウェアの開発にあたってのコミュニティ,特にオープンソースソフトウェアのコミュニティを指しています。

このセッションでは,Danishさんがコミュニティで感じたことを踏まえ,コミュニティで活動するにあたってどんな行動を取るべきかということを話しました。

「Matz is nice and so we are nice」であるべきこと

最近ではRuby on Railsが流行し,書籍や採用事例が増えたことで,多くの人がRubyのコミュニティに加わるようになりました。しかしその一方で,プログラム言語の人気度指標の一つであるTIOBE Indexでは,Rubyはかつては9位で,2012年5月には11位に落ちています。DanishさんはRubyの人気が上がってこない理由の一つに,RubyコミュニティがMINASWAN(Matz is nice and so we are nice)に沿ってないことがあるのでは,と言及しました。

文句が多かったり口調が悪いコミュニティからは,人は離れたくなるものだ,とDanishさんは言います。人がついてくるには,礼儀や敬意が必要と指摘しました。

プロジェクトを引き継げるようにすること

Danishさんは,自分が使いたいと思っていたRubyのライブラリにpull requestを送ったものの反応がなく,結局別のライブラリに乗り換えたことがあったと述べていました。自分が貢献できるソフトウェアを使いたい,という気持ちが働いたそうです。

もちろん,プロジェクトを一度立ち上げても,時間がないなどの理由で放置せざるを得ない場合もあります。しかしそういったときのために,ほかの人がプロジェクトを引き継げるようにしておくことが重要だとDanishさんは述べていました。その具体的な方法として,mojodna氏の発表を紹介しました。

他の「コミュニティ」との対比

Ruby以外のさまざまなコミュニティから,われわれが学べることがあるとし,いくつかのIT技術系ではないコミュニティの例を挙げていきました。

Danishさんはまず,ボーイスカウトの意識である「集団行動」⁠他の人を尊重すること」や,プロスポーツチームにおける「個人の力のみならず,チームでも力を発揮すること」を見習うべき意識と述べていました。またソクラテスの述べた「メンターの重要性」⁠アリストテレスの「人に教えることができるというのは,自分がよく分かっているということ」も挙げていました。

コミュニティの一員として取るべき行動

最後にDanishさんは,⁠Solutions - Yes We Code」という表題で,コミュニティの一員としてあるべき行動をしようと話します。

まず,基本的な意識として「お互い敬意を持って接する」⁠ソフトウェアを作る際の具体的な行動として「READMEファイルを付ける」⁠よいドキュメントを書く」⁠例を載せる」⁠ほかのメンテナを見つける」⁠またGitHubにおける行動として「GitHubページを使う」⁠issueにラベルを付与する機能を用いて,初心者/中級者/上級者を分ける」⁠pull requestを送る」といったことが挙げていました。

セッション後の質疑応答では,⁠GitHubでホストされているソフトウェアで,元の開発者のメンテナンスが止まった場合に対策ができないか」というものがあり,これに対してDanishさんは「まだすぐに出せる成果はないが,フォークされた方のレポジトリの方がアクティブならば,そちらを検索結果において優先して出す,といった対策などを検討している」と話していました。

Rubyでは,作ったソフトウェアをソースコードごと公開するということは多いです。すでにそのような活動をされている方にとってはもちろん,まだソースコードを公開する活動をされていない方にとっても,この発表は「ソースコードを公開するというのはどういう意識か」ということを考える契機になるのではと感じました。

画像

画像

原田洋子さん「アメリカのカンファレンスに行こう!」

@yokoletこと原田洋子さんはJRubyやNokogiriのコミッタであり,今年「Ruby Hero 2012」に選ばれました。これは,日本人としては初めてのことです。しかし,今回はJRubyなどの技術的な話はせず,まあ楽しもうじゃないか,とセッションが始まりました(スライド等はこちら)⁠

最初の一歩を踏み出す勇気

初めて参加したアメリカのカンファレンスは2010年の「RailsConf」だったそうです。このカンファレンスには「とにかく行ってみたいと思って行った」とのことでしたが,ここで原田さんは「人生が変わった」と言います。ここで会ったひとたちを写真で紹介し,@tenderloveに声をかけられたほか,⁠画面に入りきらない」さまざまな人と交流を持つことができたそうです。

当時原田さんはミシガンの田舎でひとりプログラミングをしていましたが,このときの体験で世界が開けたと話します。RailsConfの場で原田さんは「素晴らしいソフトウェアを作ってくれてありがとう」と,いろいろな方に声をかけられたと言います(原田さんはNokogiriという,非常にメジャーで有用なRubyライブラリのコミッターのひとりです)⁠

オープンソースのソフトウェアは,例外はありますが,その作者たちはほとんどがボランティアです。⁠ありがとう」という言葉はコーディングする上で,非常にエネルギーになるそうです。

また,バグは忙しいと放置してしまいがちですが,実際に報告してくれるひとたちとも会ってみると非常に真摯な良い人たちで,親しくなってもっともっと頑張るぞという気分になると言います。

アメリカにはRailsConfのほかにも多くのカンファレンスがあり,Submit Proposals, Made Presentation, Tried Lightning Talksといったイベントに参加したそうです。昼食の会場にはそこら中にナード集団が居て,食事が終ってもトークに花を咲かせているとのことです。

英語から逃げない

英語ができないからアメリカに行かないのは間違いで,行かないから英語ができないのだと原田さんは言います。英語も道具なので使わないといけないものです。Rubyを習得するにも,できるだけ多くのコードを書かないといけないのと同じことです。

また,質疑応答でも「日本に住んでいるプログラマは英語と関わりがない,カンファレンスで外国人と会うのとも隔りがあるが,どうすれば良いか」との質問に対して,日本人は英語についてとてもネガティブであることを指摘しました。原田さんはアメリカに既に6年住んでいらっしゃいますが,移民の人たちは英語を覚えて行きていくことに必死で,教科書を読んだりしない,と言います。

多くのカンファレンスに出席しようと思うと,どうしてもお金は多くかかります。しかし,金はなくても安く上げる方法はいろいろあると話します。たとえば原田さんは,カンファレンスの地域コミュニティの人たちに部屋を貸してもらう,あるいはアメリカのホテルは(宿泊人数ではなく)ルーム単位の料金になっているそうなのでシェアして安く上げる,などの手段をとったそうです。

アメリカのカンファレンスは客層が厚く,本当に世界中から参加者が集まります。外からの目線で自分たちを見ることができ,仕事を休んで行ったとしても決して無駄ではないとのことですので,ぜひ参加してみましょう。

画像

画像

著者プロフィール

KaigiFreaks レポート班

KaigiFreaksとは,会場に来れなかった人にも雰囲気や内容を楽しんでもらえることをミッションとする特別編成チーム。配信班とレポート班の2班で構成される。レポート班の作業はエクストリームスポーツとして知られていたが,今回はその評判を覆すべく史上最大規模の編成で臨む。


前鼻毅(まえはなつよし)

Ruby札幌,アジャイル札幌,CLR/Hなど札幌のコミュニティで活動中。RICOH IT SOLUTIONSにてRubyやObjective-Cのコードを書いている。

twitter:http://twitter.com/sandinist


にく

北海道出身で沖縄や東京に住んだ後,今は札幌在住のプログラマ。コンサドーレ札幌が好き。Ruby,Emacsが心のメインツール。最近はHaskellを試している。

twitter:https://twitter.com/niku_name
blog:http://niku.name/


小野寺大地(おのでらだいち)

北海道大学大学院,一般社団法人LOCAL,Ruby札幌あたりで活動中。普段は複雑ネットワークの研究をしていて,肉チャーと二郎系ラーメンをこよなく愛している。

twitter:http://twitter.com/onodes
facebook:https://facebook.com/onodes


H.Hiro

北海道大学大学院在籍。Ruby札幌,札幌C++勉強会などで活動中。コレクションの要素数を数えるのに便利なライブラリ「multiset」などを作っている。Rubyで好きなものは「ブロック付きメソッド呼び出し」「Domain-Specific Languageの文化」。

twitter:http://twitter.com/h_hiro_


小玉直樹(こだまなおき)

生まれも育ちも札幌のプログラマ。RubyにハマってからはWebアプリを作るのが楽しくて日課になっている。1年ほど前からコミュニティ活動にも参加を開始し,素敵な技術者と出会える日々に感謝。

twitter:https://twitter.com/volpe_hd28v
blog:http://d.hatena.ne.jp/koda_hd28v/


うさみけんた

いまをときめく自宅警備員…だったのですが,Ruby会議の半月前に退職して東京に移住しました。Python札幌などでも活動。セキュリティ&プログラミングキャンプ2011言語クラスチューター。函数型言語の浅瀬で溺れる。

twitter:http://twitter.com/zonu_exe
blog:http://d.hatena.ne.jp/zonu_exe


すずきゆうすけ

札幌市に隣接する風の街・江別市で働く自営業。Ruby札幌にときどき顔を出す。Garage Labsにもときどき出没。プリキュアと朝ドラをこよなく愛し,日々変動する体重に怯えるごくごく普通のアラフォー。

twitter:https://twitter.com/yuskesuzki


みぃお

一般社団法人LOCALで主に活動中。お家でRubyをちょくちょく書いている。男の娘。お仕事はPHPでソーシャルゲームを作っている。

twitter:https://twitter.com/ayako119
homepage:http://miio.info/


永沼智比呂(ながぬまちひろ)

首の長いプログラマー。達人プログラマー読書会を主催したりしていた。Ruby札幌やSapporo.js,アジャイル札幌に参加。Ruby界隈の文化って面白い!

twitter:https://twitter.com/onjiro_mohyahya
blog:http://onjiro.blogspot.jp/


わたなべしゅうじ

札幌在住のプログラマ。札幌Javaコミュニティ代表。Java,Ruby,Python,JavaScriptなどを扱い,ユニットテストが好物。

twitter:https://twitter.com/shuji_w6e/
blog:http://d.hatena.ne.jp/shuji_w6e/


菅井祐太朗(すがいゆうたろう)

北海道から上京して一年。ようやく仕事でRubyを使えそう。Ruby札幌,Asakusa.rb,Yokohama.rbなどに顔を出している。

twitter:https://twitter.com/hokkai7go
blog:http://d.hatena.ne.jp/lncr_ct9a