Beyond XML

Java/J2EE - 【連載◎開発現場から時代を眺める by arton】第5回:ITpro
arton氏のITProへの寄稿を読ませて頂きました。

アプリケーションを書く仕組みを提供する(提供したい)人達ってやはり「いかにシンプルにできるか」、もっとぶっちゃけると「いかに楽するか」を追い求めている人達だと思っているのですが、そういう方々ってやはり同じ方向を向いていくのだろうなと思いました。

やはりポイントは

プログラム自身が持つコード情報とメタ情報を活用すること

でしょうか。


記事ではJavaRubyに関して、特にS2DAORuby on Railsにおける類似性に関して言及していました。主題に関して私が言及するとすれば.NETのCLRにおけるメタデータとその各言語でサポートされるカスタム属性(アノテーション)、更にはCodeDomですかね。むろんアノテーションJavaでも使える訳ですがこれらは一般的なレベルで使いこなしている例をまだあまり見ないのでやはりこれからの技術なのかなと。


もう一つ気になるのは最近の日記で度々言及しているAOPです。現在のAOPはまだプログラムの補助的、拡張的な扱いでしかありませんが今後はプログラム中のコード情報、メタ情報と同様に言語レベルで組み込まれるのが自然な機能だと思っています。これもarton氏が記事中で既に書かれていますがAOPは一般的に言われているソフトウェア工学的見地からの目的の他にも静的言語の動的な言語に対する弱点を補うという目的においても非常に重要です。
従ってこれからの静的な開発言語は

・プログラム自身とそのメタ情報への容易なアクセス
・実行時の型、メタ情報へのアクセスと捕捉によるAOP
・これらを悪用させない為の強固且つ柔軟なセキュリティ

これらを扱えることが最低限必要不可欠になってくるのかなと。この方向にどんどんと進むとその内に静的な言語と動的な言語の境目が曖昧になっていくのかもしれません。

主題と外れますがS2DAOはとてもいいですね。設定ファイルを使用しない、という記事中で言及されている点ももちろん素晴らしいのですがSQLを敢えて隠していない、むしろそれ自身を活用できている所が素晴らしいです。やはり現場の声というか現場で必要とされるツールやフレームワークを開発されているなぁと感心します。