DataScience.rb ワークショップを開催し、PyCall を用いたデータ解析の実演をしました

開発部 R&D グループの村田 (mrkn) です。

2017年05月19日、Speee Lounge で DataScience.rb ワークショップ 〜ここまでできる Rubyでデータサイエンス〜 を開催しました。 f:id:mogmog2:20170522144449j:plain

このワークショップは当初、私が2016年10月から取り組んでいる PyCall の開発 *1 と、Ruby アソシエーション開発助成の支援の下で実施された西田さん、三軒家さん、芦田さんによるプロジェクトの成果報告のために企画されました。そんな中、クリアコードの須藤さんが2017年2月頃から Apache Arrow の Ruby バインディングを開発する Red Data Tools プロジェクトを開始されました。Apache Arrow は2016年頃から開始されたプロジェクトで、私は当初から Ruby の将来にとって重要な基盤になるはずだと思い注目していたこともあり *2、Red Data Tools プロジェクトの進展には期待をしています。そこで、私から須藤さんにお願いして Apache Arrow と Red Data Tools の話をして頂くことになりました。

ワークショップの全体の流れは次のようになりました。

最初に、このワークショップの位置付けについて説明しました。私は、2016年から2017年初めにかけて、カンファレンスで何度か「Ruby はデータサイエンスでは使えないプログラミング言語である」ことを強い表現で説明してきました。このようなネガティブな話をし続けていても Ruby がデータ解析で使えるプログラミング言語になるわけではないので、私はこのワークショップを起点に、ネガティブな話をせず開発を前に進めていくことに注力したいと考えていました。そこで、オープニングで「今日を Ruby でデータサイエンスをやっていく日々の始まり」にするために、次のことを宣言しました。

  • Ruby をデータサイエンスで使えるプログラミング言語にしていこう
  • ネガティブな話はもうやめよう
  • 過去や現在に囚われず、粛々と開発を進めよう

f:id:mogmog2:20170522144502j:plain

そして、Ruby をデータサイエンスで使えるプログラミング言語にするために3つの道があることを説明しました。

  1. 巨人の肩に乗る
  2. 既存の gem をなんとかする
  3. Ruby のための仕組みを整えていく

ワークショップ当日のコンテンツは、これら3つのそれぞれについての現状報告でした。オープニングの後、次の順にそれぞれ発表とデモを実施しました。スライドや Jupyter notebook ファイル、関連ブログ記事へのリンクを記載したので、当日参加されていて復習したい方も、参加できなかった方も合わせてご覧ください。

  1. 巨人の肩に乗る ⇒ 村田賢太「PyCallを使ってRubyでデータ解析をやってみよう」 [slide] [jupyter notebook]
  2. 既存の gem をなんとかする ⇒ 西田孝三、三軒家佑將
「Ruby Association開発助成で得た知見の共有と今後」 [slide] [jupyter notebook]
  3. Ruby のための仕組みを整えていく ⇒ 須藤功平
「RubyもApache Arrowでデータ処理言語の仲間入り」 [slide] [blog]

DataScience.rb は今後も開発の節目ごとにワークショップを開催していく予定です。私たちの取組に賛同し、開発に協力してくださる方は、SciRuby の Slack や Red Data Tools の gitter に参加してください。利用事例の報告、バグレポートなどお待ちしております。

Ruby をデータサイエンスで使えるプログラミング言語にしていく活動を、今後ともよろしくお願いいたします。

*1:2016年12月〜2017年3月まで、しまねソフト研究開発センターさまに支援していただきました

*2:将来的に daru のバックエンドに採用したいと思ってこのような issue を作ったことがあります