ActionScript3の優れている点
ActionScript3はJavaとJavaScriptの良いとこどりをしたつもりが、むしろ悪くなっているところが沢山あるのだけど、良いところもある。
そのひとつは間違いなく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くらい単純な方が何かと問題が少なくてよいと思うのだが……。