SmalltalkのセマンティクスにJava的構文を与えたような言語。 お約束のHello Worldはこんな感じ。
class Hello { static public main: args { Console << "Hello World!\n"; } }
こういう言語では(Rubyのように)ifやwhileなどは文法で持つことが多いし、 またメソッド呼び出しの形式も「obj.method」にするような気がするが、 SpanはこれらはSmalltalk形式のまま。
2 + 2; 5 + 2 - 7; Array new: 10; Rect x: 5 y: 5 width: 10 height: 10; (5 >= 4) ifTrue: { this doWhenTrue; } ifFalse: { this doWhenFalse; }; 1 to: 5 do: #(cnt) { cnt doSomething; };
要するに「Smalltalkにより普通の構文を」という出発点は同じでも、 アプローチにおいてRubyとは違う道をとっている(Rubyが捨てた点を残し、Rubyが残した点を捨てている)。 これが成功するのかどうかは私にはわからないが
あと、興味深いのはSpanは実行エンジンにParrotを採用している点だ。 Parrotかんばれ(Pugsに負けるな)。
IRCで韓国人が話していた。「韓国で有名な日本人といえばYuminとAyumiだ」。
松任谷由実と浜崎あゆみのことかと思えば、全然違う人らしい。
日韓の文化の溝はまだ深い。