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などより遠く感じた。
初めて勉強する場合は、相性もあるかもしれないが、難易度はどちらもあまり変わらないと思う。