ECMAScript4はPython化するのか?

http://weblogs.mozillazine.org/roadmap/archives/2006/02/js_and_python_news.html より:

js> function count(n) {
    for (var i = 0; i < n; i++)
        yield i;
}
js> g = count(10)
[object Generator]
js> g.next()
0
js> g.next()
1
js> two_to_nine = [i for i in g]
2,3,4,5,6,7,8,9
js> squares_to_20 = [i * i for i in count(20)]
0,1,4,9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361

Pythonにあるyieldによるgenerator記法とcomprehensionが入ったJavaScriptです。注目すべき点は、由来がPythonかどうかというより、このgeneratorによって、独自オブジェクトを配列のように見せられるというところです(PerlでいうならTie Array)。

むやみにAPIを増やす方向はもう古く、今後は利用者はプログラミング言語がもつインタフェースとしての文法を直接使い、機能実装者は言語の背後で各機能を結合するという方向に進みつつあります(railsなんかもそう)。こういうものは言語のこのgeneratorのような機能が追加されることによって促進されます。

逆にいえば、これからのプログラミング言語は、その文法の下に自由な機能を追加できるかどうか、にかかっているかもしれません。現状は結合される文法のセマンティクスには配列だとかハッシュだとかオブジェクトだとかが使われるのですが、最低限ジェネリックであればよいわけで、それらだけというわけではないでしょう。効果的で使いやすい文法を採用/発明するのか、という点はより重要になるのではないでしょうか。