世界中で利用されている国産プログラム言語「Ruby」が、機械学習や人工知能(AI)開発の盛り上がりを前に正念場を迎えている。米Googleなどを後ろ盾に「Python」が同分野でソフトを充実させる一方で、Rubyの存在感は薄い。5月19日に開かれた「DataScience.rb ワークショップ 〜ここまでできる Rubyでデータサイエンス〜」で、Ruby開発者達は危機感をあらわにした。

 「Rubyはデータサイエンスの分野で“歯抜けの状態”だ」。生物学関連のソフトウェア開発に携わる西田孝三氏は、Rubyの現状をこう評する。西田氏は芦田恵大氏、三軒家佑將氏と共同で、2016年10月から2017年2月までの2016年度Ruby Association開発助成プロジェクトの下、Rubyのデータ処理ライブラリの整備に取り組んだ。

生物学関連のソフトウェア開発に携わる西田孝三氏(写真左)と、三軒家佑將氏(同右)
生物学関連のソフトウェア開発に携わる西田孝三氏(写真左)と、三軒家佑將氏(同右)
[画像のクリックで拡大表示]

 特に不足しているのが、データの前処理に関わるソフトウエアだ。「前処理はデータサイエンスで9割の時間を費やす工程。しかし根本的な解決はできなかった」(西田氏)。Rubyの数値演算ライブラリ「daru」の改良を進めたものの、「daruが備える機能が少なく、多様なシナリオがあるデータサイエンスの現場では実用に耐えない」(同氏)。

 比較対象となるのは、データサイエンスの分野でスタンダードの座にある「Pandas」だ。PythonのスクリプトをC/C++でコンパイルして実行する「Cython」を利用でき、処理速度も高速だ。このPandasと同等の機能をdaruに追加するには「構造が複雑で実装コストが高すぎる」(三軒家氏)という。西田氏と共に登壇した三軒屋氏のデモでは、Pandasであれば約0.3秒で終わる処理が、daruでは約5秒かかった。「手軽に試せるところまで持って行けた」(西田氏)として一定の目的は果たしたとするものの、Pythonとの差が縮まったとは言いがたい。

Rubyの数値演算ライブラリ「daru」の改善が困難なため、他の手段を提案。
Rubyの数値演算ライブラリ「daru」の改善が困難なため、他の手段を提案。
[画像のクリックで拡大表示]

PythonのライブラリをRubyで利用

 Rubyの数値演算ライブラリの整備が困難なら、Pythonを利用すればよい。そう考えるのは自然な流れだ。Rubyを習得できる開発者であれば、Pythonを学ぶのはそれほど難しいことではない。しかし当然、Ruby開発者の減少を招き、Rubyの知識やソフトウエア資産を生かせない。