morimorihogeです。最近やることが多すぎて記事が書けていませんでしたが、なんとか今年もRubyWorld Conferenceに参加できました。
RubyWorld ConferenceはRubyKaigiに比べるとビジネスやコミュニティ寄りな内容になっており、非エンジニアな人(経営者や官公庁など)も参加されるのが特徴でしょうか。おカタめな企業も発表に参加しているので、趣味でプログラミング大好き!という人以外のビジネスで使ってる・使いたいといった人も多く参加しています。
プログラムは公式サイトをご参照下さい
また、一部の講演を除き公式で会場ライブ中継もしていますので、参加できない人も観ることができます。良い世の中になったものですね :)
そんなわけで、発表そのものはアーカイブや中継を観て頂くとして、初日に僕が個人的にいいなあと感じたものをざっくりレポートしてみたいと思います。
前半は会場とかの話で、内容に関しては後半です。写真に興味のない方はサクッと読み飛ばして下さい。
会場・会議よろず
もはやおなじみとなった松江のくにびきメッセです。松江駅から歩いてもいける程度にほど近く、広さはそれなりといった所でしょうか。
松江駅からくにびきメッセ方面に歩いて行くと、Rubyカラーなのぼりが見えてきます。奥の方に見えるのがくにびきメッセです。
本会議場はこんな感じで、シングルセッションなので全てのセッションを聴くことができます。電源はありませんが、席数は足りているようでした。
ささやかながら、弊社(BPS)もスポンサーに登録させて頂いています。
スポンサー特典として、今年はTechRachoの宣伝チラシを置かせて頂きました。
今年も毎年恒例なRuby和菓子を頂くことができました(写真は2種類のうちの一つ)。
お弁当もきれいで豪華です。ごはんがおいしいConferenceは良いですね :)
初日の講演で印象に残った話
以下、初日の講演で特に刺さった講演の感想です。色々書きたいことは沢山あるのですが、全部は書き切れないので抜粋です。
Matz基調講演: Rubyが可能にしてきたこと
いつものMatz(まつもとゆきひろさん)講演です。
今年は過労死やアルファ・シンドロームの話に繋げて「そもそも人が便利になるためにコンピュータを使ってきたが、最近は人がコンピュータ様のために奉仕するようなことになってるのでは」といった話をされていました。
続けてRubyが何を目指して来たのかという話の中で、いわゆるプログラマ三大美徳の中でもLazinessの話を強く話されていました。
Ruby人口が増えてエンタープライズや組み込み、科学技術計算などに版図を広げる中で、型が欲しい!といった声は多く聞こえます(僕も欲しくなるときがあります)が、そもそも今のダックタイピングな設計思想になったのはなぜかといった部分も忘れないで欲しいな、という気持ちがあるのかもしれません。
僕としてはこれからもRubyは怠惰で短気で傲慢なプログラマの良いツールとしてあり続けて欲しいなと思うので、こういった話は心が元気になりますね。
組込みハードウェアへのmrubyアプリケーション適用試行
こちらも一部でおなじみみよひで(@miyohide)さんとごろねこ(@GORO_Neko)さんの発表です。
日本OSS推進フォーラムの活動の中でmrubyを扱ってきたが、この1年はmrubyでアプリケーションを作って知見を詰もう、といった活動をしてきた成果として、ランニング用リアルタイム位置情報発信アプリ(長い)を発表されていました。
組み込みとは言ってもRaspberry pi + LinuxにUSBのセンサ・GPSモジュールを付けての実装なのでそこまで難航はしないんじゃないかな?と僕は勝手に思っていたのですが、CRubyの実装では問題がなくてもmrubyに移植する段階で色々と問題が出たよという話(環境変数が取れないとか、mrubygems周り)でした。
データの送信先にAzure IoTなサービスを使われていた様ですが、そうするとHTTP(S?)な通信ライブラリもいるし、タイムスタンプの処理に日付フォーマットも使うし・・・と、一見単純に見えるアプリケーションでも実際に実装しようとするとmrubyの場合mrubygemsを組み合わせてこなければならず、その辺のノウハウは試行錯誤しつつ蓄積していかないといけない印象を感じました。
なお、軽量rubyフォーラムのmruby 1.2.0アナウンスページには、Mac/Win/Ubuntu各環境でのmrubygemsの動作検証リストがあるよと紹介されていました。こちらはこれからアプリケーションを作ってみようというmrubistには非常に有用そうですね。
ここから先は僕の補足ですが、Linuxなんてないよ!というもっとリソースのない環境ではmruby/cというものがあり、これはArduinoで動作させてみたという話もあるようです(参考: mruby/cをつかってArduino MicroでLチカしてみた)
Scientific Computing in Ruby & Ruby における機械学習のための環境整備の取り組み
二つともRubyで科学技術計算(統計解析や機械学習などを含む)をするぜというSciRuby関連の発表でしたが、濃い内容の発表でした。
※僕はこの分野は専門分野じゃないので以下の内容はうまく読み取れてない部分もあると思いますがご了承下さい
前者はSameer Deshmukhさんの発表で、Rubyで科学技術計算をするライブラリや基本的な使い方の話で、at a glance的に一通りsurveyしつつ紹介してくれる感じでした。Ruby Prize 2015で西田さんが受賞されたNyaplotも紹介されていました。
僕としてはこの発表を聴いた段階では「おお、RubyもこういうRやPythonでやってきたような領域に使える様になってきたんだな」と思ってました。
がしかし
それに続く村田(@mrkn)さんの発表は「Rubyの機械学習・科学技術計算周辺のサポートはPythonに比べると少なくとも11年は遅れている。このままではRubyはPythonに置いて行かれる、まずい」という話でかなり鬼気迫る内容でした。
発表スライドは既にSpeakerDeckにアップロードされているので、興味のあるかたはそちらも見て頂くと良いと思いますが、とにかく時間がない、やばい、という印象でした。
確かにDeep Learningや機械学習分野は今が華で投資も活発なタイミングなので、今このタイミングで乗り遅れてしまうと「これまではWebアプリ作るのはRailsが簡単だったけど、データサイエンス分野と密に結合したWebサービス作るのであればPythonがそのまま使えるDjangoに切り替えていこうか」という流れはあり得るのではないかと思わされました(もちろん全部が移行することはないでしょうが、選択肢として有力になっていきそう)。
@mrknさんによる解決作としては、11年遅れた流れをリソース投入して慌てて追いかけるのではなく、既にあるPythonやJuliaの資産を使える様にするライブラリを作るという方向性で、既に動いているということでした。まさに「巨人の肩に乗る」戦略。
恐らくRubyらしさは多少犠牲になってしまうと思うのですが、その分Python等の他言語のライブラリでの実装に慣れている層からの流入も期待できると思うので、僕はこのやり方が好みです。
小さな町で子供向けのプログラミング講座をはじめてみて
最後にRubyWorld Conferenceらしい発表として、廣田さんの発表を紹介です。
お子さんにプログラミングを教えたい!という所から、どうせなら地域の他の子供たちも集めてやってみようかという流れでプログラミングを教えようと思い立った所からスタートし「ではどうやればいいのか?」で試行錯誤した内容がすごくためになる発表でした。
静岡県の牧之原市という都心部に比べれば人口の少ないところで、場所の確保や人集めについて役所に相談に行ったり、講座で教える前にまず自分の子供に教えてみて子供にとって刺さる内容はどういうものなのかを追求していく姿勢は「こういう人にプログラミングを教えてもらったらすごく良い経験になるだろうな」と思わせてくれました。
こういうのもRubyが人を幸せにする一つの方向性として、すごくいいですよね。心が元気になる発表でした。
まとめ
そんなわけで今年も良いconferenceです。これを書いているのが二日目の朝8時なので、もう少ししたら二日目が始まります。
二日目も終わったらまたレポートを書こうと思います。
※会議参加者の方で「ここ間違ってるよ!」というところがありましたらTwitterにて@morimorihoge宛に教えて頂けると助かります