J2EEリハビリ2

うーん。
DIによってPOJOベースの開発が可能になり、コードから非機能要件が排除できたのはうれしいことだけど、
なんというか、感覚的には、

従来のAPIベースのコード中に存在したノイズの量 < フレームワークや設定やツールが持つノイズの量

と感じてしまう。ノイズというか、煩雑さというか、理解困難さというか…。
単に、慣れてないことからくる感覚的なものであることを願うが。


そういえば10年以上前、複数SIer共同でC++のクラスライブラリを作っていたとき、こういう議論があった。
”はたして、言語そのものを習得するのと、ライブラリを習得するのはどっちが難しいことだろうか”、と。
僕らの間では確か、”どっちも同じくらい難しい”というのが結論だった気がする。


結局、それは今も同じなんじゃないか?
すなわち、”APIを習得するのも、diconのような、言ってしまえばDSLを習得するのも、等しく難しい”、と。
で、その難しさっていうのは、APIの機能やDSLの記述方法を理解する難しさではなく、
ライブラリやフレームワークが持つ、特有の概念を理解する難しさなんだろうと思う。


自らがプログラムするコードが、簡潔で、目的に対してPureになればなるほどに、
Pureであることを支えるための周辺技術の複雑さは増す...なんだか皮肉な話。
もちろん、一度その周辺技術の複雑さを克服してしまえば、2回目以降の開発はぐっと楽にはなる。
けど、同じ技術を使った開発に従事できるのはなかなか難しいのが現実だ。