2009年2月5日木曜日

良いわがまま

例えばある言語で誰かが使っていない変数やメソッドに小さいアイコン(黄色いビックリマークとか)を表示して欲しいと思ったとします。でも評価するタイミングの問題もあって、使うまで常に表示されてしまうのが気に入らないと思う人もいるでしょう。スペルチェックみたいな感じでプリビルド的に走って欲しいとか。

そういう「わがままさ」が肝です。

使っているか否かという判定は言語処理系が担当し、表示系がユーザの望むタイミングで取得してコードビューに反映とすると、処理系にもっと静的解析系の機能を入れる必要があります。なぜならもちろん現状のツールのように、ツール自身で翻訳系の処理を行なうことも出来ますが、それは無駄以上に整合性の問題があるからです。

ところが処理系自体に手を入れられないとそうも言ってられません。かといって処理系自体を作るかと言えばコード解析にバックエンドは(全ては)必要ない。であればコード解析に必要な部分だけ新規に作るか、オープンソース系であれば言語処理系を改造するかになります。いずれにしても結局は整合性がないコード解析ツールになっていきます。

そうならないためには、突き詰めれば、異なるアプリケーションのコードをどこまで共有できるかということであると同時に、どこまで細かい単位で共有できるか。それが、気に入る気に入らないを左右する問題と、整合性とを、同時に解決することになるのです。

もちろんコードのリポジトリは膨大になるかもしれません。ですがまあ、そんなこと気にしないで、どこまでやったらどうなるのか、見てみることにしましょう。これは概念交換機よりもっと古くて基本的な考えですが、いつか何とかしたいですね。

0 件のコメント: