JSFを触る機会があったので、そのときに感じたこと。
主要なWebアプリケーションのフレームワークはStruts以外ほとんど知らないので、それとの比較になるけど、JSFは随分洗練されているなぁ、と。簡単なサンプルアプリ(JSFに付いてる車のヤツとか)しかまだ見てないけど、バッキングビ―ンやアクションリスナの仕組みはかなり楽出来そうだな、と。
で、プレゼンテーション層はすごい進化してるけど、そっから先の層はどうなんだろうかな?と。
データソース、というかRDB扱う層はO/Rマッピングのフレームワーク全盛だし、Ruby on RailsのActiveRecordとか、研究と開発は進んでいると思う。
# 本当はオブジェクト指向とシームレスなのがいいんだろうけど、RDBの方がまだまだ優秀だしね。
で、ビジネスロジックを扱う層だけど、ここってフレームワークと呼べるものがほとんど無いのかな?と。
DIやAOPのフレームワークがそれに相当すると思うけど、JSFやHibernateなど他の層のフレームワークと比べるとすごく難しい。これから使われ出して良い点悪い点が見えてくれはまた事情は変わるのだろうけど、ここの層は再利用可能な実装を提供するのは本質的に難しいのかな、と思う。
デザインパターンや依存性逆転の法則、ちょい昔だと制御の反転とか、そういう概念レベルでの再利用は進んでいるのに、それを実装して現実に再利用可能な形として提供するレベルに持っていけてないのが気になる。プレゼンテーション層やデータ層はそういう概念適用して結果が出ているから、なおさら気になる。
もちろん、優秀な人たちはDIだろうとEJBだろうと、複雑だが有用なモノは取り入れて使っている。そういう状況もいいのだけれど、一般レベル人でもそれなりに使えてそれなりに効果の出るフレームワークは必要になると思う。
-
- -
個々の開発者に課せられた要求は概念レベルでは共通化できても、それぞれの現場で共通化できるほどには詳細なものはやっぱり難しいんだろうなぁ、と思いました。そもそも、デザインパターンはそういう思想で作られているし・・・。
そのうちすごいフレームワークが出てくるかもしれないけど、プログラミングが個々の開発者の能力に依存する時代はまだ当分続きそうだと思いました。