rubyとpython どちらも使ってみての比較っていうか感想
お仕事では主にrubyで趣味やデータ分析などの際にはpyhtonを使っています。
まぁ、どちらも初心者なので的を捉えてるとは言い難いですが、触ってみての感想を書いて行きたいと思います。
直感的に書けるruby,合理的なpython
まず、rubyですが、日本人のMatzが作ったということもあり、日本人に取っては直感的に書けるのではないでしょうか?
例えば、型の確認など
kata = "ストリングだよ"
rubyの場合
kata.class
pythonの場合
type(class)
rubyは”先に変数名を書いて、その後にクラスを調べますよー”って感じですね。
一方、pythonは”先に型を調べるよー”って来て。”なんの?”ってなって"この変数の"ってなる感じです
つまり、
rubyは先に目的語が来て、その後、動詞みたいな感じです。
pythonは先に動詞、目的語が来ています。
pythonはオランダの方が作ったということもあって、やはりプログラミング言語にも作成者の母国語が反映されているのではないでしょうか?
case文のないpython
javaやrubyやってた人に取っては"マジッ"てなるかもしれませんね。
case文だと見栄えが良く、わかりやすいですよね。なんとそれがpythonにはないのです!!
おや、まてよと個人的には思います。
pythonってインデント強制だし
if str in {'a', 'b'}:
print('a, b')
elif str == 'c'
print('c')
のようにif文書けるし、別にcase文いらなくね?
というより、if文で見やすいようにかけるなら大丈夫じゃね?と
日本語文献の少ないpython
言語の難しさ自体に差異はないのですが、日本人がとっつきやすいなーって思うのはrubyです。
rubyっていうよりrailsかもしれませんが。
なんでかというと、pythonの構文とかは日本語文献はそこそこあるのですが、djangoとかflask,
pyramidなどのフレームワークになると一気に日本語文献少なくなります。
まぁ、"stack over flow"見ろよって感じなんですが。。。
英語に苦がないぜ、おれは英語できるぜってドヤ顔したい人はpythonがおすすめです。
日本にいるんだし、おれはスピードを求めてるんだっていう人は、rubyですね。
クソみたいなORM?
これは言語飛び越えてフレームワークのレベルになるんですけど
とにかくDjangoのORMはrailsのactive recordに比べてしょぼいです。
特にサブクエリ周りが。。(django.1.11になって改善された?)
あと、”なんでマッパー使っててるのに"or"とかでなんかimportしないといけないんだよっ”とか
しかし、自分はdjangoが好きです(笑)
まとめ
好きなの使うべきってことですね。
個人的にはデータ分析も好きなので同じ言語でwebサイト作れるpythonは非常に楽です。
レコメンドエンジンとか機械学習周りとか実装したいなら、同一システムに組み込めますからね。
わざわざ、rubyからpython呼び出すとかしなくていいし。