Python より Ruby
うへぇ、風邪ひいた。。。
人と話していると喉の痛みが地味にこたえる。ネットのテキスト文化万歳!
ここ一週間くらい Ruby と Python を学んでるんだけど、小規模のスクリプトを書くにあたって俺にあっているのはどうやら Ruby のようだ。
俺の感じたそれぞれの言語の良い点と悪い点を箇条書きしてみると、
- Python
- 良い点
- 標準ライブラリが豊富
- インポートすべきライブラリは多いものの、一つの import で複数のライブラリをインポートできる
- 意外と処理速度が速い
- 良い点
-
- 悪い点
- 何故か map(), len() といったものがメソッドではなく組み込み関数
- 悪い点
- Ruby
- 良い点
- 不自然な組み込み関数がない
- map, select といったものが自然に使える
- 良い点
-
- 悪い点
- then, do, end が気持ち悪い
- require 'hoge' と一度に一つしかインポートできない上、クオートするのが面倒
- 悪い点
なんともまぁいい加減すぎる比較だけど。
「シェルスクリプトでやるには荷が重いけど、わざわざ C で書くのも面倒なときに使う言語」という観点からの比較としてはアリだと思ったり。
Python に関して
よく宣伝文句として聞くものとして「インデントと制御構造が一致している」「可読性が高い」「見た目が美しい」があるが、
最初の2つは同意するけど「見た目が美しい」というのにはあまり同意できない。
一番気になる場面の一つは
for i in list: init() # do some work cleanup()
このように、各 list の要素に対して何らかの処理をして終わり!ってときに、スクリプトの最後がタブで終わること。
この見た目は全然美しくないと俺は感じる。
map(), len(), all() などがリスト型のメソッドでなく組み込み関数なのは致命的にダメ。
今までオブジェクトなカンジに思考してコーディングしてたのに、この組み込み関数を使うときに途切れてしまってなんとも気持ち悪い。
それとこれは一長一短な点だけど、メソッドの呼び出しにパーレンが必須なのもちょっとめんどくさい。
まぁそのおかげで部分適用が可能になるわけだけど。