このページの内容

Wrenの概要

Wrenは小さく高速な、クラスを中心とする並行スクリプト言語です #


Luaほどの小さなパッケージにSmalltalkを収め、Erlangをひとさじ加え、なじみのある現代的な構文で包んだものを想像してください。


System.print("Hello, world!")

class Wren {
  flyTo(city) {
    System.print("Flying to %(city)")
  }
}

var adjectives = Fiber.new {
  ["small", "clean", "fast"].each {|word| Fiber.yield(word) }
}

while (!adjectives.isDone) System.print(adjectives.call())
  • Wrenは小さい。 VMの実装に含まれるセミコロンは4,000個未満です。午後のひとときで全体に目を通せます。小さくても、詰め込みすぎではありません。読みやすく、丁寧にコメントが付いています。

  • Wrenは高速。 高速な単一パスのコンパイラが無駄の少ないバイトコードを生成し、コンパクトなオブジェクト表現とともに、Wrenがほかの動的言語に匹敵する性能を発揮するのに役立ちます。

  • Wrenはクラスを中心とする。 スクリプト言語は数多くありますが、珍しいオブジェクトモデルを持つものや、そもそもオブジェクトモデルを持たないものもあります。Wrenではクラスを中心に据えています。

  • Wrenは並行処理を備える。 軽量なファイバーが実行モデルの中核を担い、相互に通信するコルーチンの群れとしてプログラムを構成できます。

  • Wrenはスクリプト言語。 Wrenはアプリケーションへの組み込みを目的としています。依存関係はなく、小さな標準ライブラリと使いやすいC APIを備えています。C99、C++98、またはそれ以降で問題なくコンパイルできます。


ブラウザーで試せます!
気に入ったら、始めてみましょう。
わくわくしましたか? 開発への参加も歓迎します!