Xtal
D言語とは別方向で進化してる。
rubyは仕様読んでもやる気が起きないので飛ばしてXtalやる予定。Xtalの開発者がD言語やECMAScriptも参考にしてるので、取っ掛かり易そうだし。
幾つかメモ。
- D言語で__traits(hasMember, obj, test)はXtalでobj.?test…って違うっぽい。nop(nop.(any)でnopを返す)を返すらしい。興味深い仕様。
- obj.testはobj.("test")とも書ける。D言語だと現状ではmixin(obj.stringof ~ ".test")と書かなきゃ駄目。
- private、public、protecetdが記号なのが新しい。どっちが良いかは判断つかないけど。
- イテレータの演算でイテレータを返すのが良い。
- スペースによる演算の優先順位変更はどうなんだろう…。スペースに意味を持たせると遅くなりそう。
- calleeで現在実行中の関数を得れる。これ、ネイティブな言語だと実装無理っぽい?
- 宣言が:なのはどうなんだろ。JSと同じくvar、もしくは先頭に記号一個(例えば$とか?)の方がいいと思うが。このせいで継承が:からextendsになっちゃってるんだし。