Python使ってみた

 いろいろあって最近はPythonを使っている。昔はブロックをインデントで表現するとかキモスと思ってたはずなんだけど、今となってはそこは割とどうでもいい。インデントはどうせ必要だしね。
 Perlと比べると、文法はこっちの方が好み。個人的な所なんだけど、変数の頭に$がつく、つかないというのがかなりでかい。
 Rubyと比べると、速いところが良い。テキストを処理しつつ、それを使って計算するのも速いので、プロトタイプがそこそこのスピードで動く。ちょっと試してみた限り、Rubyも1.9は速くなってる(fib(34)はPython2.5よりRuby1.9の方が20%ぐらい速かった)んだけど、仕事で1.9を使う気にはまだなれない。
 以下、Pythonで気になったところ。

  • 無名関数が書きにくいというか、lambda式が式しか書けないのが辛い。list comprehensionを使えということなんだろうけど、内包表記では「ある条件を満たす要素だけちょっと書き換える」というのが別の関数を定義しないと書けない(書けるのかもしれないけど、書き方がわからない)ので、やっぱり無名関数をもっと多用したくなってしまう。
  • グローバル変数が参照はなにもしなくてもできるけど、代入する際にはglobalとか宣言しないといけないところ。グローバルに宣言した変数が辞書だったりすると、その中身は書き換えられたりするので、なんか中途半端な気がする。

 気に入ったことは、if文の条件式のところで=を書くとエラーになるところ。既にこの仕様になんどか助けられた。賛否両論ありそうな仕様ではあるけど。