cypher256's blog

Pleiades とか作った

http://www.csg.is.titech.ac.jp/~muga/weblog/archives/2007/08/post_468.html
から引用。

ちょっとびっくりしたのが、eclipse の日本語化に
dynamic AOP が使われているらしい。。。
日本語化パッチをアスペクトで書いたということだろう。
パッチとしてアスペクトを使うという研究は昔見た記憶があるし、
これも良いアプリケーション例だと思う。

少し疑問に思ったのが、
普段、*動的*に言語パッチを切り替える必要性があるのかどうか。
仮にその必要があったとして(たぶんありそう)、

なぜ動的なのか。ここに書いたことに関連。
http://d.hatena.ne.jp/cypher256/20060401

理由は色々ある。バージョンアップで訳し直しは非効率、未知のプラグインに適当に対応できる、プラグインごとに翻訳するのが嫌、同じ単語を訳すのが嫌、etc...


ここでいう *動的* が、「構成も変えてねーのに、毎回ウィービングする必要あんのか?」ということであれば、それは確かにその通りで、実際、ウィービングするには起動時だけでも数十万のメソッドを検査する。遅い。だから、ほんとにウィービングするのは -clean 起動時だけになっている。古いバージョンはなってなかったけど。それはそれがボトルネックではなかったからだ。

eclipse みたいな dynamic loading をしまくるアプリケーションで、
どのくらいスパッと動的に言語切り替えができるのか疑問。
この view では日本語化したけど、あの view では英語のままだ、
とかありそう。

あるある。ただ、そもそも言語パックが無いプラグインのほうが多い。その点、動的のほうが有利。また、言語パックはバージョンごとの使い捨てで、ほとんど保守もされないに比べれば、AOP 翻訳はすべての訳が使いまわされるという構造上、利用者の指摘をたくさん吸収し保守し続ける必要があるため、訳の品質は嫌でも上がる。デグレもあるけど。

あと、パフォーマンスとか。

初回起動時と -clean 時は、えーと。まー、あれだ。
2回目以降はそんなに気にならない。たぶん。
起動後は計測する限り、体感的には分からないはず。

グダグダ言う前に使って試してみたら?と言われそうなので、この位で。

グダグダ言う前に試せ。いえ、すみません試してください。お願いします。