動的言語+静的言語
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; } }