Island Life

< なんという良問 | Paul Grahamのlazy evaluation戦略 >

2008/01/30

Arc

Arc出た

ぱっと見、リッチな機能を備えてるわけでもないし、 いろんなものがハードコードされててあんまり遊びがいがなさそうだし、 関数名やマクロ名が暗号的でとっつきにくさはあるけど、 中身をみてみると作りにポリシーがあることがわかる。

よく、「Schemeはdefine, quote, if, lambda, set!の基本構文が あれば残りの構文はそれで書ける」と言うけれど、ほんとにそれを やっちゃった。コアで定義されている構文は quote, quasiquote, if, fn (lambdaに相当), set (defineとset!に相当)だけ。 あと50個ほどのプリミティブな関数が実装言語であるSchemeで 定義されてるけど、残りはArc自身で記述されている。

ただ、この方針がどこまでスケールするかは未知数だなあ。 Paulには"This is what JavaScript should have been." と 伝えたけど、ちょっとしたスクリプティングには充分便利だと 思う。ただ今のところ使うまでの手間が多いね。

チュートリアル以外にドキュメントが無いので、 Arc Cross Reference を作り始めてみた。

ところで現在のArcをどう見るべきかだけど、私の意見はHacker Newsにポスト したのでこっちにも載っけておく。

I think its more like going back to the initial spirit of Scheme and making it right: "Programming languages should be designed not by piling feature on top of feature, but by removing the weaknesses and restrictions that make additional features appear necessary."

So, criticizing lack of features is meaningless to Arc. Valid criticism may be to find weaknesses and restrictions.

Tags: Programming, Lisp, Scheme