注:これは、1998年頃に書いた文を少しだけ直したものです。 最後の文における根拠のない私の楽観が当たったみたいなのは幸いです。
awk&Cシェルの時は、データを少し加工した後で、別の小さな Fortran プログラムに渡すようなことをしていたのですが、Perl を使うようになってからは、ちょっとした数値計算ならば出来たので、なかなか便利になったと喜んでいました。 ところが、そのうちにもっと色々やりたいと欲が出るようになり、そうなると、どうも Perl ではいまいちだと感じるようになりました。Python に出会ったのはそんな時です。
初めは、Perl の「簡潔さ」に慣れていた(毒されていた?)せいか、Python は全般に少し冗長で読み書きが面倒臭いなとか、特に正規表現があまり便利でないな等と感じていました。 また、Perl は変数の型などを先頭の文字($ や @)で区別するのが、なかなか賢いと感心したりもしていたので、Python にしたら逆戻りになってしまったとも思ったりしました。 しかし、やはり数値計算がネックでしたので、いわば少々我慢して Python に取り組みました。
日本語では、Python 高座と Python 入門、特に後者がお薦めです。 もちろん、今回訳出した Konrad Hinsen 氏の Python for scientists も良い教材です。
実践的には、それまでに書いた Perl プログラムを一つずつ Python で書き換えて行く作業が、けっこう効いたようです。この際に、上記お薦めの Python 入門に含まれるいくつかの表は、参照用にも便利で役立ちました。 また、Perl-Python Phrasebook というのも便利そうです。
クラスについては、以前 C++ を少しかじったけれど使いこなすには至らず、Python でその利点を知りました。 特にプログラムの変更、拡張、保守について、Fortran なんぞで苦労してきたので、実感も強かったのだと思います。 Python のオブジェクト指向はニセモノっぽくて気に入らないという専門家の方もおられるようですが、私の用途には殆ど問題になっていません。(問題になる程の使い方はしていないからでしょう。)
プログラムの読み易さも次第に実感してきて、今では Perl プログラムが汚く見えてしまいます。 しかし、やはり実行速度の遅さは若干気になります。 特に簡単なプログラムほど Perl に比べて立ち上がりの遅さが際立つように感じます。 実行速度については、遅かれ早かれ改善されるだろうと(特に根拠もないのですが)楽観しています。