動的言語+静的言語

http://d.hatena.ne.jp/nowokay/20070111#1168537761

実はActionScript 2.03.0がいいところまでいっているんじゃないかという気が。AS3.0は残念ながら実は静的言語ですってのが困ったところなんだけど、ようするに宣言時にHoge hoge = new Hoge()とやったら静的チェックされるけど、 var hoge = new Hoge() とかやると動的になるとかしてやればよいのだ。

ただ、個人的には動的言語が型なしになった結果、javadocみたいなものを見てもよくわからんということになりがちなので、クラス外に公開する部分に関しては静的なチェックをかけるが、クラス内は動的でもよいというようにしてほしい。

例えば、こんな感じ。

public class Hoge {
    // 動的
    private var a = new Object(); 
    
    // これはOK
    public Object getStaticObject(String name) {
        a.name = name;
        return (Object)a;
    }

    // これはエラー
    public var getDynamicObject(var args) {
       a.name = args.name;
       return a;
    }

    // これはOK
    private var getDynamicObject(var args) {
       a.name = args.name;
       return a;
    }
}