TMTOWTDIも好きだったが


 そろそろ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言語覚え始めの頃にはセミコロン付け忘れて数分悩んだ記憶もあるから、慣れってのは恐ろしいものですなあ。


かまいたち


 やっべ。マジやっべ。
 俺、かまいたちの原因が真空どうのこうのって信じてたよ!

 サンタクロースは物心付いた時点で既に全く信じていなかったというアレな子供であったが。だって普通に考えてそんなのいる訳無いじゃん。ねえ。
 だが冷静になれば、かまいたちもおかしいと気付くはずではあった。何てこったい。


そろそろYAMLに冷静になる


 CPU時間の方がシビアという話なので、repr()でそれっぽく吐いてimportするという手に。まあ多分pycを読むのが一番軽いのではないかと踏んだので。あと、データは管理者が作る静的な物だから、汚染の心配も無いので。
 まあでも、本気でシビアならPythonどころじゃない気もするな。いい加減そろそろJavaとか触るべきか。まだ別にいいか。


今更YAMLを知る


 プログラマ崩れとして生きていると、時にシリアライズしたブツをリモートに投げたり、データ構造を視覚的に確認したりしたいこともあるものだ。つーか最近もう頻繁に。
 で、YAMLを知って超歓喜。まあ、凄く今更っぽいんだけど。今風味のコードを書こうとするのとか久々だったもので。

 つーか、こういうツリー構造のデータをテキスト化するのに使えるのってXMLくらいしか知らなくて、JSONは昔見たけど忘れてた。まあ、どっちも見る分には見辛い。特にXMLは話にならない。書くのも辛いし、読み書きのAPIも何かえらいことになってるし。
 んで、YAMLは何かもう、欲しかった物そのものだった。いやー、時代から遅れるって辛いスね。ろくにプログラム書いてなかったから仕方ないけど。

 というわけで、ダンプしたのを見てデバッグしたり、zlib掛けてメッセージ投げたりスキーマレスDB風味にしたり、便利ですなあ。しかもシリアライザとしても相当コンパクトだった。Pythonだとpickleより縮んだりするし。汎用性が低いとかかな。速度は微妙っぽいけど、別に何回も呼び出さないからなあ。特にブロックスタイルでzlib通すと縮むような。スペース多用するからか。

 まあ、とりあえず技術力を少し磨かないとなあ、と久々に思った。ここんとこ半端過ぎて無駄スキル気味だったしなあ。