日記の CGI を止められたり、それに関係してリファラの表示をやめたりとかしたせいで気付いてなかったんだけど、なんか言及されてたようなので、今さらだけど書いてみる。
といっても、当時の自分が何を考えていたか、はっきりとは思い出せないんだけども。 まあ、文脈から考えるに、「Python は Ruby に比べると面倒なこと多すぎる。」という言質は「ちょっとした日々のツールをでっちあげたりする」というシチュエーションにおいての話であるのは間違いない。 で、わしにとってのそういう「ちょっとしたツール」というのは要するにテキストの処理とか、そういうものなわけだ。 そんな感じで考えると、この場合の「面倒なこと」とはおそらく以下のようなものだろうと思われる。
念の為エチケットペーパーを敷いとくと、上記はあくまでも「ちょっとしたものをさっと書き上げる」場合の話であって、全てのシチュエーションにおいてこれらが問題になると思っているわけではない。 大きめのものをきっちり作るなら、逆に有利に働くものも多い。
あとまあ、小さいものを書くシチュエーションであっても、Python の方が好みの部分とかもそれなりにある。 optparse モジュールなんかは、Ruby のものより Python のものの方が作りが好みだし。 引数を解析した結果を辞書として取れるのとか良いよね。 Ruby だと解析結果のハッシュが欲しいときは、あらかじめ用意したハッシュをコールバックで破壊的に変更したりとかしなきゃないから、なんか美しくない。
他にはキーワード引数なんかは、どんなシチュエーションでも嬉しい要素じゃないかと思う。 Rails ではハッシュをキーワード引数代わりに使ってたりするけど、あれって使う方は良いけど、同じようなメソッド書こうとすると面倒なんだよな。 Ruby にも是非キーワード引数を。
Pythonの文字列の変数展開なのですが<br>print "Count %(one)s %(two)s %(three)s." % {"three":3,"two":2,"one":1}<br>これではまずいですかね。<br>勘違いしているようでしたらすみません。
その書き方は知ってますけど、このネタは「てっとり早く書く」シチュエーションの話なので、<br>Ruby で "Count #{one} #{two} #{three}." って書けるのに比べると、やっぱりめんどうですよね。
ご存知かと思いますが<br><br>"Count %(one)s %(two)s %(three)s." % locals() という手も…
あー、それはご存知じゃなかったっす。<br>って言うか、locals は知ってましたけど、その組み合わせは思いつかんかった。<br>脳の柔らかさの問題ですかね(苦笑
>print が式文なくせに、<br>これはpython側でもおかしく思ってる人も多いみたいで、<br>3.0で修正されるらしいですね
ちなみに私も最近どっかで見て知ったんで自分で考えたわけではないです。