作者: 機械伯爵
日時: 2007/10/21(00:02)
 機械す。

> Dave "Pragmatic Programmer" Thomas もRubyKAIGIでの講演でPythonには
> 「Guidoの(武道などで言うところの)型がある」といった趣旨のことを
> いってますし。

 そーいえば、さらに厳しい型をPythonにはめるモジュールが
ありましたっけ……アレは行き過ぎだったと思うけど(笑)

> #つーと、Perlはさしずめ『雲のジュウザ』あたりになるのか?

 ラオウの腕一本で満足するほど、無欲では無いと思うなぁ……

※なんといっても今も昔もCGI界では帝王だ……
 
> PythonとRubyのそれぞれに感じる不満点は jijixiさんが最近書いてましたね。
> 
> http://jijixi.azito.com/cgi-bin/diary/index.rb?date=20071010#p01
> http://jijixi.azito.com/cgi-bin/diary/index.rb?date=20071011#p01

 超漢字……なんてまにあっくな……(あたしゃV2しか持ってないなぁ)

 まぁ、ソレはさておき、Pythonのソレは明らかに意識して作ってあるトコだ
から直しようが無いとこであるのに比べ、Rubyのは、まだなんとかなりそうな
トコがあるような……

<λ>
 え〜py3kからは、execが式になるので、裏技でlambdaでも文が使えます。また、
現状でも、if文くらいなら、「条件付き評価式」が使えますし、副作用が目的
なら、リスト内包を使ってできる場合もありますよん。

 ただ、これは単なる私の「Python慣れ」のせいだと思うけど、式一つ以上の
文をlambdaで書かなきゃならない場面って、少ないと思うんだけどなぁ。

<逆襲>
 最後の式の結果をリターンで返すRubyのほうが珍しいと思うのだけど。
 returnを↑にしたら少しはマシかしら?

<えくすぷれっしょん>
 代入が値を返さないのはよくCユーザに云われるけど、制御構造が値を返すって、
ソレ、SmalltalkかLispかRubyだけじゃないの?
 代入だけなら、書き換え可能なクラスを作っておいて、変数の代わりに使えば
いいだけの話なんだけどね。

<輸入/れぎゅらーえくすぷれっしょん>
 仕様です。

<文字列展開>
 py3kで文字列でformatというメソッドが増えて、
"{0:03}: {1}".format(56,'print("Hello!")')
 とかいう書き方が増えたのだけど、どうだろう?

<自身>
 ちなみに、selfが嫌なら、Iとか(大文字なのがミソ)myでもいいのに(笑)

※Modula-3から引っ張って来た特徴、なのだそーな。Modula-3って未だに
 謎な言語だけど。

 ちなみに、メソッドの第一引数にselfを書かなければならないのが、
面倒、という意味でしょうね(自分自身を参照するならthisつけるの
で同じわけだし……)

 で、例えばIやmyとしたならば、自分自身参照の数が多いほど、thisより
タイピングが少なくなるんですけどねぇ。

※でも私はselfで刷り込まれてます……

> ふと思ったんですが、self. つけるのがうざいうざいとは良く聞きますが、
> 逆にデフォルトでは self. がついているかのごとく扱われて、外側のスコープに
> 存在している変数(など)にアクセスするときには就職子必須にするか、

 global.value ?

> なにか特別な記号なりキーワードを前置するなどしたときには名前の検索を
> self のひとつ外からはじめる(つまり self.ほげほげ は探さない)。
> ってのはどんなもんですかねえ。

 現在、@も使っちゃったから、残るは$だけだけど……ヤだなコレは。

※PerlやRubyと違う、最後の砦なので……

 書くのは楽かもしれませんが、読むのは大変かと。
 
> あー、関数/メソッドにローカルなのをどうするかってのがあるか。

 local.valueとか(笑)

 まぁ、現在のPythonは、ドット参照+レキシカルスコープ+代入即ローカル
というルールでがちがちに縛られているので、慣れれば分かり易いし、使い易い
と思うんですけどね(代入は明示的に行えばいいし)まぁ、違ったルールの言語
の思考をしないというのが問題なのだろうけど。

 /機械伯爵/