k3c 曰く、 "「19ヶ月の開発期間を経て」Python 2.3がリリースされています。いろいろと細かなバグフィックスやメモリリークの修正、機能の改良などが行われている中で、目玉は旧バージョン(2.2.3)と比較して2~3割の高速化だそうです。蛇使いの皆さん、噛みつかれないようにね…。"
確かに速くなっているらしい (スコア:3, 興味深い)
今まで2.3を使っていませんでしたが、この記事を機会に移行しま
した。
特定のモジュールが速くなっているのか全体的な改善か、そして
私がよく使う機能が本当に速くなっているのか簡単なベンチマー
クでみてみました。
(空白でレイアウトしたらフィルタに弾かれたので読みにくいで
すが)
項目2.22.3
re.compile instanciate17.02012.393 (sec)
file read & re.search 14.251 12.235
string-float convert 18.395 8.722
subclass instanciation10.932 8.674
と、Perlとの差を縮めるほどではないにしろ、インタプリタエン
ジン自体に手が入ってまんべんなくパフォーマンスがあがってい
るようですね。2ー3割の速度アップは嘘ではなさそうです。
他にもモジュールの読み込みが速くなったような気がしますが適
当なベンチマークが思いつかなったので測定しませんでした。
#しかし自分の適当なスクリプトがエラーを吐いて止まるように
#なってしまったのには・・・
#文法がstrictになったのでワーニングを出すモジュールもちら
#ほら・・・
kaho
Re:確かに速くなっているらしい (スコア:0)
・pymallocが標準搭載されるようになってちょっと速くなった
・dictionaryのkeyを全部パースするのが5000倍速くなっている
速度的にボトルネックになっているのはPythonの動的な部分(型チェックとか)だと思われるので,今後速度向上を望むためには
Re:確かに速くなっているらしい (スコア:1)
Pythonってほとんど「型」のチェックはしてません。演算してみるまで何にも文句を言わず、できない演算(文字列と複素数の排他的論理和とか)だったらTypeError例外を発生させるだけ。
今回のリリースでは、辞書へのアクセスの高速化が全体的な高速化につながったんじゃないのかな?
Pythonの名前空間はそのまんま辞書だからね。
Python、なぜ流行らない? (スコア:2, 興味深い)
誰でも知ってる Python アプリの代表 (スコア:3, 参考になる)
Google [google.com]。
Python プログラマ常時募集中 [google.com]
。Re:誰でも知ってる Python アプリの代表 (スコア:0)
#どうせならPerlで書いてくれた方がうれしいな。。。
Re:誰でも知ってる Python アプリの代表 (スコア:1)
Init を Python で書こうという提案 [gmane.org]もあったらしいのですが、どうなんでしょうか?
Re:誰でも知ってる Python アプリの代表 (スコア:1)
-- 雪のない富士山もきれいだな
Re:Python、なぜ流行らない? (スコア:2, 参考になる)
Lisp プログラマのための Python 入門 [unixuser.org]とかなぜ Python なの? [unixuser.org]なんかを読むと言語のポテンシャルの高さが感じられるかも。
私はそんなに高度なことは書けないのですが、時間経った後に自分が何をしたかったのかが良くわかるって点で、最近ちょこっと書いて試すのにはperlじゃなくpython使うようになりました。
rubyのほうが良いって言われると困るけど。
Re:Python、なぜ流行らない? (スコア:1)
日本だけ見るとあんまり普及してないかもしれません。
これはRubyのせいかも。
Re:Python、なぜ流行らない? (スコア:0)
まぁそう思うのもRubyのせいなのかも知れませんがね。
# 訳あってAC
Re:Python、なぜ流行らない? (スコア:1)
私の印象だけなんですが、文法と言うか、語句の並べ方などがPythonは
英語に似ているが、Rubyは日本語に近いと感じています。で、日本語に
慣れている人だと、Rubyの方が発想しやすく、Pythonはへんちくりんに
見えるのではないかと思っています。逆に、日本語が得意じゃない人は、
Rubyは文法がへんちくりんと感じるのでは?
例えば、Pythonだと
for rule in grammar:
apply(rule)
で、Rubyだと
grammer.each do |rule|
apply(rule)
end
といったところですかね(特にeach/forとgrammarとruleの順序)。
また、Rubyでうれしそうにみえる、メソッドの連鎖は確かに便利で
私的には自然なのですが、非日本語圏の人からみるとかなりへんちくりん
にみえるのでは?例えば
[6, 1, 5, 6, 1].sort().insert(3, 2).reverse()
Re:Python、なぜ流行らない? (スコア:0)
あれに馴れるか馴れないかが、その人にとっての萌え度が高いか低いかの境目になってると思います。
どうせ適切にインデントしようとすると(例外はありますが)Pythonのそれと同じになるので、そこは目く
Re:Python、なぜ流行らない? (スコア:1)
私もemacsに助けてもらえなければPythonでスクリプト書くのはつらいです。
>どうせ適切にインデントしようとすると(例外はありますが)Pythonのそれ
>と同じになるので、そこは目くじら立てるほどのことでもないと思いますが
うーん、それでも長い行の場合他の言語だとそのまま改行して書き続けられ
ますが、Pythonだとバックスラッシュを書かないとエラーになるので、改行
を入れずに一行にしてしまうのですよね。それで逆に可読性が悪くなったり
して。
まあ、私の書き方が汚いからなのですが。
>ブロックの終了が"}"でも"end"でもない辺りは割と気になる人も多いのでしょうね。
あ、私は必ず"pass"を入れるようにしてます。
emacsのpython-modeならそれでインデント揃えてくれるのでコードの切り
貼りが楽になりますし。
それでも私はPerlが性にあわなくなって、当時Rubyはまだまだライブラリが
充実していなかったので試してみたPythonに今ではどっぷりなのですけれど。
kaho
Re:Python、なぜ流行らない? (スコア:0)
でも私は古い人間なので、pythonにはやや抵抗があります。
rubyの{}とbegin..endの併用も嫌いな人は嫌いなんでしょうけど。
Re:Python、なぜ流行らない? (スコア:0)
文書処理から、画像工学まで、結構幅広く使えます。
なにより、楽に、きれいに書けるところがいいですね。
うちの大学で、Python使いは少ないようです(数えるほど?)
CとJavaを授業で習うんで、C,Java使いか、Perl使いですね。
Re:Python、なぜ流行らない? (スコア:0)
Zope 界隈で極々希にぽつんと出ています =P
なんつーか国内だと普及の決め手に欠きますよねぇ、、
python on windows (スコア:2, 興味深い)
そういえば (スコア:0)
「まずはPythonから始めろ」
みたいな事が書いてあったような。
# 私はPython嫌い
Re:そういえば (スコア:2, 参考になる)
# tuxedo.orgっていつの間にかSlashcodeなサイトになってたのか….
ザウ用パッケージ早く出ないかな (スコア:0)
python, perl, ruby なんでもござれ (スコア:0)
実はまだあったことがありません。
三つとも使いこなせる人は、なぜそうなったのでしょう?
特にこだわりをもつほどではなかったから?
どれも一長一短あり、用途によって使い分けているから?
scriptラブだから?
Re:python, perl, ruby なんでもござれ (スコア:1)
似たような用途なら、言語は一つのほうがありがたい。