そろそろPython覚え始めて一週間くらい。
最初の三日間は色々いじってたけど、その後はフレームワークやライブラリの仕様読みばかりでほとんどコード書いてない。こんな時期が一番つまらん。車輪とか関係ねえ、とばかりにゴリゴリ書きたくなる習性は抜けない。でも僕もいい大人ですからネ。ホントヨネ。
で、Perlとの違いはやはり鮮明である。
Perlっつーと、”There’s more than one way to do it.”(TMTOWTDI)という標語があるくらいで、同じことするにも色々なやり方や書き方があるぜ、という言語だが、Pythonだと”There should be one — and preferably only one — obvious way to do it.”という標語を出してくる訳で、ただ一つの自明な書き方があるぜ、という言語だ。
まあ、混沌も好きなら緻密も好きな俺的には、どっちもいいんじゃねーの、といい加減なことしか思わないが。プログラミング言語に文法上も混沌を持ち込んだPerlは好きだし。
とはいえ、別に混沌を愛していたのではなかったようで、結局はタイプ数が少なくて数分でツール作れます的な言語なら何でも良かったようだ。つーことはRubyでもPHPでもいいのかもな俺。むしろ全部覚えるのもそんな大変じゃなさそうだな。全部覚えたら何を使うようになるんだろうなあ。恣意的に選べるなら、カッチカチなPythonなのかもなあ。書きやすいだけじゃなくて、読みやすいし。
あと俺、TMTOWTDI的に複数の書き方が選べると、どれが一番かっこいいか一瞬悩むんだよな(笑)。選択の余地が少ないのは実は楽かも、ってのはPythonいじってて思った。
それと、オフサイドルール、つまりインデントに依存してブロックを表現する文法も、慣れたら快適だった。どうせブレースあってもガチにインデントするんだからブレース無くてもな、という気持ちは確かに元々あったが、実際にブレース無しでコードを打っていくとこれがなかなか。唯一気持ち悪いと感じたのは、ブロック中に空行入れようとすると、インデント維持の為に空白だけの行が必要になることか。末尾空白削除フィルタとか通すとアウトの予感。逆にpassというnop的な文があるのは面白い。
ついでに思い出したけど、RubyはENDが何か苦手だった。とはいえ、慣れたら実は快適とかあるかもしれないので、使ったことの無い言語の使い心地に言及するのもアレではある。ブレースとどっちが快適なんだろうなあ。
PHPは知らないけど普通にブレースなんかな。Cっぽく見えたし。まあ今後PHPを使う機会があるかは怪しいが。Rubyはどっかで機会ありそうだけど。
ぶっちゃけ、セミコロンもブレースも無しで書こうとするとものすごく何か忘れてるような気分になるのだが、むしろC言語覚え始めの頃にはセミコロン付け忘れて数分悩んだ記憶もあるから、慣れってのは恐ろしいものですなあ。