CheerpJを使ってScala Compilerをブラウザだけで動かす

すでに数回書いたけど、またCheerpJの話です。 (ブラウザでJVM自体をエミュレートして動くやつ)

色々tweetして試行錯誤していたけど動きました、やった〜。

https://github.com/xuwei-k/cheerpj-scala

https://xuwei-k.github.io/cheerpj-scala/

ここでいう「ブラウザだけ」というのは、server側は静的なファイルを返してるだけで、全部処理はブラウザで行われる、ということです。 なのでgithub pagesにホストするだけで動くし、こういうものを作るときserverが必要だと、serverが殺されないようにとか、serverの負荷やセキュリティを気にする必要がありますが、これはどんなに変なコード書いても、書いた人のブラウザが高負荷になるだけなので、公開する側は一切そういう心配する必要がなくて最高便利です、やったー。

先にJava版作って、そっちの方がすごく簡単に素早く動くのだが、それは気が向いたら後で同じように公開するかも(詳細未定)

cacheなどの工夫を全くしていないので、compileにおそらく毎回数秒かかって遅かったり、tweetしたように微妙に古いversionのScalaだったり、これはcheerpj自体の問題だと思うのですが、書くコードによっては急にcrashしたりなどなど、色々と問題だらけなのですが、とりあえず動くは動きます。