v8を使おう

そうだ、v8を使おう。v8を使って自分のプログラムをJavaScriptで制御できるようにしよう。LuaPythonもいいけど、JavaScriptを使おう。

WindowsプログラマらしいWindowsでのビルド

ググるといろんな人たちが試しましたよ、とありましたが以下に従った手順がほとんどですね。

Windowsプログラマな私は基本的にコンソールを開きたくないので、SConsでビルドできるのであれば絶対にVisual Studioのソリューションファイルがあるはずだ、と思って探してみたところ、案の定ありました。v8/tools/visual_studio/v8.slnですね。


ソリューションを開いたら、v8_shell_sampleプロジェクトを選んでビルドしてやればexeが作れます。実行するとインタラクティブシェルが起動してきて「何?」というような感じで入力を待ち始めます。ここでJavaScriptを叩いてやれば動きます。簡単ですね。

v8の大きさ

ソースコード

DPackで調べてみたら、ベース部分の実効行数は2万行程度でした。私がDelphiで作ったゲームである二代目NaGu-Ruより小さいじゃないですか。これはたまげますね。言語なんてそんなもんなのか、という、変な安心感が出てきますよね。なお、v8はばりばりC++を使っているのでこれくらいの規模で済んでいますが、もしCで書いていたらもっと規模が大きくなっているでしょうね。

実行バイナリ

さて、v8が簡単にビルドできるとどうしてもバイナリサイズが気になりますよね。というわけで、Unicode+MTでビルドしてみましたが、1,395KBもありました。Luaに比べるとさすがにでかいですよね。でもPythonの静的リンク版に比べると小さいですよね。その辺が面白いですよね。バイナリサイズから言語を見つめるとなんとなく「そういう使い方を考えなきゃいけないんだな」と思いますよね。きっとUnicodeだからでかいんだと思ってMBCSにしてみましたが、そういうことでもないですよね、やっぱり。

ちなみに邪道ですがUPXで圧縮すると481KBになりました。なお、UPXで圧縮しようとしたらエラーが出てきたので強制圧縮モードというものを使いました。