E言語

lock(semaphore, mutex),からデッドロックフリーな方法として STM, message-passing(erlang)までは手を出したけど、promise(future)をいじってなかったので勉強。のついでにE言語を覚えてみようかと

特徴

  1. 分散アプリに特化しているらしい。今回の目的 promise-pipeliningがある
  2. secureな分散しシステムに向いているらしい。通信が暗号化されるっぽいのと、Capabilityベースのセキュリティのため、監査なんかでも切り分けしやすいとか
  3. あと、ウイルス防止にも有効でVBの代わりにEだったらLoveLetterとかありえへん、とか書いてあるけど、正直なんのこっちゃ

欠点

  1. JVMベースなんで低レベルあつかえねー
  2. 同様の理由でおそい
    1. しかーし、JavaやCで拡張できるんでほとんど問題ないよーとか

いれてみる

こっからひろってくる。
http://www.erights.org/index.html
JVM実装の場合、subversionで拾ってくる。

 % svn co svn://svn.synchrona.org/erights/e/trunk e

でおもむろにmakeするとexport/distに e.jarができあがる。同じディレクトリの ./runeを実行するか java -jar e.jar --rune すると対話コンソールが立ち上がる

いじってみる

hello!
 println("Hello E")
fib
 def fib(n) {
  if (n == 1) {return 1}
  return fib(n-1)+n
}

まあふつう。
というか書いてある通り普通の事やるだけなら普通のちょっと違ったスクリプト言語。確かに。

特徴的なことしよう

型ガードとか、promise pipelineに挑戦するぞっ! という意気込みだけ ←今ここ