作者: 機械伯爵
日時: 2002/5/22(22:09)
[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の根本思想ではあり
ませんから(適材適所ということで)

   機械伯爵