読者です 読者をやめる 読者になる 読者になる

強いメッセージ指向言語、Sketchy

コップ本を買って Scala のおもしろさがわかってきたのと、言語のデザインについてあれこれ考えていたこともあって、ちょっと Scala で処理系をつくってみようとおもいます。

  • JavaScript のような辞書と関数による単純な設計
  • Io をも越える強いメッセージ指向
  • Io や JavaScript よりもうちょっとイカした関数リテラル
  • 部分適用などの関数型の要素
  • 動的型付け
  • Ruby のモジュールをより改良した Mix-in

などの特徴を持った言語にしてみたいとおもっています。

Io は if などのほかの言語だと制御構造として提供されているものも、メソッドとして定義されているといった、かなり徹底したメッセージ指向であり、代入もメッセージ・センドとして表現されますがちょっと甘いと感じています。代入も平等にメッセージ・センドとして表現したらどうなるだろう、という考察が前回のエントリです。

JavaScript は関数リテラルがあって、ある意味で Ruby よりも関数型に近いといえるのですが、長くてちょっとイカしていないです。コールバックを渡すときの見た目としては、やはり Ruby のブロック引数がきれいです。

動的型付けは、やはり Scala がおもしろいといえど Ruby の気軽さには一歩及ばない(これは Scala の実行環境にも一因があるとおもうので、一概に型付けのしかたの問題であるとは言えませんが)とおもうし、なにより静的型付けだと Scala との差別化が弱く、自分の動機の維持がつらそうだ、と考えたからです。

GitHub にリポジトリを立てています。