macinbasic.info で知ったのですが、REALbasic作者の Andrew Barryが
新しいBASICの開発を始めたようです。
氏は今回の開発の様子を Blogに書き留めていて、今のところ毎日更新
されています。 http://www.barrysoftware.com/blog.html
なんでも今回作っている言語は Pythonからいろいろとインスピレーシ
ョンを受けたのだとか。
Blogの箇条書きによれば、
・Unicode
・より良い Garbage Collection (少なくとも mark & sweep)
・より良い closure の追加
(allowing a bound object->method to be passed around
as a value ってどういう意味だ?)
・弱い型付け
・OSの関数をプラグインを使用せずに直接呼べるようにする。
・もっと pureなオブジェクトシステム
・より良い iterator
・統合された Collection
だそうです。(てきとーな訳でごめんなさい。)
----
実は私、オブジェクト指向言語における弱い型付け・強い型付
けのメリット/デメリットをあまり理解していないのですが、
そのあたりの比較で良い資料があったら教えて下さい。
> ・より良い closure の追加
> (allowing a bound object->method to be passed around
> as a value ってどういう意味だ?)
Java風に書くと,
void method1(int x) {
ActionListener a = new ActionListener() {
void actionPerformed(ActionEvent e) {
...xへのアクセス...
}
};
...
method2(a.actionPerformed);
}
のように,bound object (ここではa)とかそのメソッド(actionPerformed)
(あるいはメソッドへの参照だかポインタだかDelegateだか)を
値として他(method2)へ渡したりできるということじゃないかな?
method1から出てしまった後でもactionPerformedが呼べて,変数xへのアクセ
スがちゃんとできるなら,一級品と言って良いと思います.
前田敦司
In article <m3u1dj9...@maedapc.cc.tsukuba.ac.jp>, MAEDA Atusi
<ma...@cc.tsukuba.ac.jp> wrote:
> のように,bound object (ここではa)とかそのメソッド(actionPerformed)
> (あるいはメソッドへの参照だかポインタだかDelegateだか)を
> 値として他(method2)へ渡したりできるということじゃないかな?
なるほど。
でも、英文の意味はわかったけど、ありがたみがいまいちわかって
ないです。すみません…
> method1から出てしまった後でもactionPerformedが呼べて,変数xへのアクセ
> スがちゃんとできるなら,一級品と言って良いと思います.
ふーむ、そういうのをちゃんと実装するのって難しいんですね。