このエントリーをはてなブックマークに追加

Ruby と Python どっちを勉強したら良いか

更新:

Ruby と Python どっちを勉強したら良いかについての検討。

レンタルサーバーの Ruby と Python

私が以前から気になっているプログラミング言語としてRubyとPythonがある。
主なレンタルサーバーではRubyやPythonがインストールされていて、使えるなら活用したいと以前から思っていた。
しかし、未だ手を付けていない。

とりあえず主なレンタルサーバーにインストールされているRubyとPythonのバージョンを調べてみた。
レンタルサーバーで最も使われていると思われるPHPは、ブロガーなどに人気のWordPressにも使われていて、各社なるべく新しいバージョンを提供している。
最近あまり話を聞かないPerlは、各社少し古いバージョンがインストールされていて、下表の中ではエックスサーバーが一番新しい。

問題のRubyとPythonだが、さくらのレンタルサーバは古いバージョンしかインストールされておらず、これらの提供については消極的だ。
さくらのレンタルサーバに自分で新しいバージョンのRubyやPythonをインストールしている人もいるようだが、最新版を使うにはそうするか、VPSなどを使う必要がある。
ロリポップ!とエックスサーバーについては最新版ではないものの、Ruby 2.0、Python 3.x系が使える。
Rubyは1.9以降、Pythonは3以降、古いバージョンと異なる部分が多いようで、バージョンを選択できるのは嬉しい。
ただ、Ruby 2.0が新しいかというとそれほどでもなく、Ruby 2.1以下は公式サポートが終了している。

そもそもレンタルサーバーで使えるようなRubyやPythonで作られたCGIアプリケーションがあまりなく、利用者が少ないので、レンタルサーバー会社もあまり積極的に提供しないのだろう。
現状レンタルサーバーでRubyを必要とするのはtDiaryくらいか。

下表の各バージョンは2017年6月25日現在のもので、詳しくは さくらのレンタルサーバ基本仕様ロリポップ! CGI・SSI・PHP・SENDMAILについてエックスサーバー プログラム言語エックスサーバー sv2001以降のサーバーのサービス仕様について に書かれている。
下表で複数のバージョンが書かれているものは選択可能だったり、新旧サーバーによってバージョンが異なっている場合がある。

最新版 さくらのレンタルサーバ ロリポップ! エックスサーバー
PHP 5.6.30、7.1.6 4.4.x、5.2.x、5.3.x、5.4.x、5.6.x、7.1.x 5.6、7.1 4.x、5.x、7.x
Perl 5.26.0 5.8.x、5.10.x、5.12.x、5.14.x 5.10 5.8.x、5.16.x
Ruby 2.4.1 1.8.x 1.9、2.0 1.8.5、1.9.3、2.0.0
Python 2.7.13、3.6.1 2.7.x 2.7、3.4 2.4.3、2.7.4、3.3.1、3.4.x


Ruby 活用事例

RubyとPythonどっちが流行っているのか事例を見てみよう。
Rubyと言えば Ruby on Rails ということで、ウェブサイトの構築で注目されている。
まず、プログラマやそうでない人にもおなじみの GitHub は Ruby(Ruby on Rails)で作られている。
2017年春頃から話題になったマストドンもRubyが使われている。
その他には以下のようなウェブサービスで利用されている。

  • クックパッド
  • 食べログ
  • Freee
  • クラウドワークス

こういった著名なサービスを構築することができる。
Rubyアソシエーション - 事例アーカイブス に事例がある。


Python 活用事例

Pythonの話で聞くのは機械学習やCGの分野だ。
SciPy、scikit-learn など科学・数学系ライブラリがあり、機械学習に利用される。
アマゾンでPythonの書籍を検索すると機械学習やディープラーニングの書籍がいくつか見つかる。
CGの分野では、Blender、Mayaなど3DCG制作ソフトにて使うスクリプトにPythonが使われている。

ウェブアプリケーションの制作に向かないのかというとそうでもなく、Djangoなどのフレームワークがあり、Pythonで作られたウェブサイトもある。
以下の有名なウェブサイトにPythonが使われている。

  • YouTube
  • DropBox
  • Instagram
  • Pinterest

Pythonを使っているアプリケーションなどは、なぜかWikipediaの Pythonを使っている製品あるいはソフトウェアの一覧 にたくさんまとまっている。


結局どっち?

RubyとPythonどちらを選ぶか。
機械学習やCGの分野ならPythonだが、それ以外ならどちらでも。
ウェブアプリケーションならRubyが有利かとも思われたが、Pythonも健闘している。
Rubyの開発者が日本人ということもあり、日本ではRubyも支持されている印象だが、世界的に見るとPythonか。

また、RubyとPythonの構文などに少し目を通した印象では、JavaScriptやPHPなどを既に使っている人であればRubyの方が覚えやすそうだった。
Pythonの記法の方がJavaScriptやPHPなどより遠く感じた。
初めて勉強する場合は、相性もあるかもしれないが、難易度はどちらもあまり変わらないと思う。

このエントリーをはてなブックマークに追加