JavaScript runs anywhere! PCやスマホのブラウザだけでなく、Node.js や Deno を使ってPC上、サーバー上などコンソールでも使えて便利なプログラミング言語、JavaScript。

最近お気に入りの Deno は、mjs が ts としてコンパイルされてしまう問題あり、deno upgrade --version 1.0.3 として回避中。いっそ、TypeScriptなしのランタイムにしてweb互換性を上げるのはどうだろう?

思うだけでなく、作ってみることができるのがオープンソースのいいところ。手始めにJavaScriptエンジンChakraCoreを使って、コンソール上でサクッとJavaScriptを動かせる js-cmd を作ってみました。


100って2進数にすると何だっけ?サクッと1行、JavaScriptが動かせるコマンドバージョン。

$ js "(100).toString(2)" 1100100

組み込みコマンドは、標準出力する console.log と別名として、Rubyっぽく p だけを定義。


taisukef/js-cmd: JavaScript on command line with ChakraCore」(今はmacOS用のみ)
C++で作ったメインソース js.cpp は、264行。ChakraCoreのサンプルソースにコマンドを組み込み、エラー処理を加えただけです。

NodeやDenoが使っているJavaScriptエンジンは、GoogleのChromeでも使われているv8、ChakraCoreは旧EdgeやInternet Explorerで使われていたMicrosoft製のChakraCore。 性能比較をしてみて、用途に会うものを使うのもいいですね。

オリジナルJavaScriptランタイムづくり、ぜひ挑戦してみてください!

Tweet
クリエイティブ・コモンズ・ライセンス
この作品は「Creative Commons — CC BY 4.0」の下に提供されています。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / RSS