[TSruby:99]へのレスですが、もうこれは完全にPythonの
話題なので・・・
>うーん、「誰が書いても同じコーディングスタイルになる」っての
>はGuidoも言ってますし、Pythonファンの多くが語るのですが、私
>は信じてません。
>
> def fib(n): return reduce(lambda x, y:
> (x,x[0][-1]+x[1]), [()]*n, ((0L,),1L))
「書ける」のと「実際に書く」のは違いますって☆
つまり、Pythonを好んで使う人は、一般的に上のような書き方を好み
ませんし、逆に上のような書式を好む人は、もっと自由な書式を許す
言語を好むでしょう(わざわざPythonを使う理由が無ければ)
※自由な書式かどうかは詳しくは知りませんが、lambdaとかmapとか
reduceで考える方が得意な方は、Lispとか使うんじゃないかなぁ・・・
※そういう人たちがPythonをわざわざ使う時は、やっぱこういう書式って
控えるんじゃないかな・・・特にスクリプトを公開するときは・・・
文と式の分離、インデントブロックによる構文は言わばPythonの思想面
での主張です。
その主張を受け入れるかどうかは自由ですが、少なくともPythonスクリ
プトを公開している人は、そのフォーマットにのっとってスクリプトの内
容を理解してほしいという人が多いのではないでしょうか?
Pythonの、文法面以外に魅力を感じている(例えばモジュールやライブラリ)
ユーザには辛いでしょうが、まぁ、そういう方にはRubyだってPerlだって
あるわけだし・・・
Pythonのファンという人々は、要するにその強制に価値を見出した人
というわけで、そういう人たちが書けば(自戒も働いて)必然的にコーデ
ィングスタイルもそろってくるというわけです。
ですから「誰が書いても」でなく、結局は「Pythonを好んで使う人なら
誰が書いても」という意味になるのでしょうね。
もっとも、その制限が、かえって理解しづらいコーディングを生む場合も
否めません。
そいういうシチュエーションが多い場合(数学的な解析を多用する場合とか)
には、Python自身が向かないといえるかもしれません。
全て一つで何でもやってしまおうという思想は、Pythonの根本思想ではあり
ませんから(適材適所ということで)
機械伯爵