ActionScript3の優れている点

ActionScript3はJavaJavaScriptの良いとこどりをしたつもりが、むしろ悪くなっているところが沢山あるのだけど、良いところもある。

そのひとつは間違いなくnamespaceだろう。java7にも新しくmoduleが導入されるらしいが、java7のmoduleがpackageの延長線であるのに対し、ActionScript3のnamespaceはアクセス制御の枠組みの延長線上にある点に特徴がある。

例えば、publicやprivateの代りにmymoduleという新たなアクセスレベルを定義できる。

import com.acme.mymodule;

use namespace mymodule;
...

mymodule function hoge() {
    ...
}

聞くところによれば、開発段階ではprotectedを廃止するという話もあったようだ。たしかにnamespaceでも代用可能だ(廃止しなかったのは正しい選択だったと思うが)。

とはいえ、ActionScript3の言語としていけてないのは、public、internal、protected、privateというアクセスレベルをnamespaceとして定義しなかったところだ。最近の言語の特徴でもあるが、いろんなところから新しい概念を持ってきた結果、カオスと化している。昔のJavaくらい単純な方が何かと問題が少なくてよいと思うのだが……。