刺身の上にたんぽぽ乗せる日記

プログラミングしたり、自販機の下に落ちてる小銭を集めたりしてます

久しぶりにphpを書いている

ethnaとかscript.aculo.usを使ってみてるわけだが、非常に時代が変わっている感じがする。
数年前だったら血反吐吐いてそうな機能がすげー簡単に使えるし。

phpは恐ろしく久しぶりなんだが、見覚えの無い関数というか、syntaxというかどっちかわからないものとかがあったりして、非常に困る。けど、そういうところは些細なところだ。
普段はcとかもっと堅めの言語使ってるんだけど、phpとかの柔らかい言語のフレームワークを使ってみてすごく感じたことがある。フレームワークの使い方がわからない。

というのは、堅い言語だと型とか引数でフレームワークの使い方が大抵わかる。最近使い見たJavaのアプリケーションフレームワークAPIを一通り見て、なんか怪しいところ2,3点聞けば普通に使えた。

で、ethnaを使った感想だけど、暗黙的な部分が多い。暗黙的にしているから楽、というのはもちろんあるんだけど、コード初見じゃ超大雑把なイメージはわかるけど、じゃあ自分で拡張できるか、と言われると死んでも無理だと思った。controllerでviewとかactionとかのバインディングを行うんだけど、どうなってるか全然わかんねぇし*1

ethnaだとクラスの名前とかでバインディングしていて、クラスそのもの(クラスのインスタンス)じゃない、とかすげー違和感を感じる。リフレクション*2とかでできるんだろうとはなんとなくわかるし、暗黙的なバインディングのためだと思うけど。

堅い言語はできることが制限されているから、フレームワークを理解するのは容易だけど、利用するのは面倒で、柔らかい言語は利用するのは容易だけど、フレームワークを理解するには、その言語の柔らかさの元となる仕様を理解しないと難しいなぁ、と思ったり。

まぁ、なんというかリハビリ中でございます。

*1:マニュアルかチュートリ読めばわかるけど

*2:本来のリフレクションではなく、Javaとかのリフレクションの意