torutkのブログ

ソフトウェア・エンジニアのブログ

アンチ・ライトウェイト

最近の雑誌・Webサイト等の記事ではライトウェイトをもてはやす風潮が多いようです。しかし、そこにエンジニアリング観点での検討があまり見られないのは問題と思います。

行数の比較、意味ありますか

日経ITプロフェッショナル誌2006年1月号の記事「ライトウェイト・ランゲージを使いこなす」に、JavaPerlPHPPythonRubyで文字列を切り出すプログラムの行数を比べている例がります。いずれも「Javaよりこんなに短い」ということを示すものですが、LLの各プログラムは関数もクラスも定義せずに行数を短くしているのに、Javaはimport文、class宣言、mainメソッド宣言まできっちり記述して行数を稼いでいます。記事の例題のようなワンライナーな処理ならともかく普通の規模のプログラムを書くならスクリプト言語だって関数やクラスといったモジュール構造をとるのですが、そこを除いていかに短く書けるかという比較には恣意的なものを感じます。

ライフサイクルの検証なしにフレームワークを使いますか

同様にオープンソースな各種フレームワークについても、雑誌等ではやたら取り上げられていますが、実プロジェクトで使うとしたら、プロジェクトのライフサイクル(少なくても数年はある)に対してフレームワークのライフサイクルが十分長いものでないと採用できません。
バグフィックス等が最新バージョンの枝に対してしか行われず、前のバージョンからの乗り換えを余儀なくされ、しかもAPIの互換性がなくアプリケーションの不必要な書き換えが発生するとしたらたまったものではありません。