makotan _at_ gmail dot com

言語からVMの戦いへ

ってタイトル書いてみたかっただけなので、あとはいつも通りな感じ


10年くらい前はJavaRubyPHPの3大勢力+独自規格のC#で争ってた感じだったのが
いまや、いくつあるんだ??位の状態になってきた(といってもSQLがデータ処理のDSLの地位を完全に確立してて変化してないのは面白い)
ざっくり大きく分けようとするといきなり足回りのVMが出てくることに気がついた

  • JVM
  • CIL系
  • js系(WebAssembly系)
  • 独自VM
  • (LLVM系)
  • VM無しのネイティブ

で、さらに今後とも増えていく事が予想される新しい言語と足回り。
JavaCOBOL化の流れは揺るがないとしても最近のOな会社の妙な動きから脱JVM化の動きが出てくるんじゃ無いかという想定を始めたところ
そうしたときに残る選択肢はjs系(WebAssembly系)とCIL系かなと。あとはネイティブへの回帰現象


個人的にはWebAssemblyの動きが気になるなぁ〜と
WebAssemblyだけバイナリの規約なので、WebAssemblyを単なるバイナリ規約として見たときに別のVM上で動作しても良いような気がする(すでに複数あるわけだし)
で、browserでも動くしCILでも動くとなったら、CILがマルチプラットフォームになってる時点で一般的なアプリケーションは全部WebAssembly系に統合されてしまいそうな夢を見た
クライアントアプリはブラウザを囲い込んだだけのやつとか今でも多いしなぁ〜


JVMGCの安心感をどのVMが最初に超えるのか(MSかGoogleになるという予想)
高度なGC作るのがそんなに難しくない言語を新たに作れば良いと思うんだけど、使う側のエンジニアの負担が大きいかな〜