Nimでプログラミングシリーズ、今回はWeb系をやろうかと思います。
Nimには標準でJavaScriptにトランスパイラする機能が備わっているので、それでどこまで出来るのかを確認します。
Webクライアント系の技術で言えば、WebAssemblyも試してみたいところではありますが、それはまた別の記事で試すとして、今回はJavaScriptの部分のみ検証します。
簡単なサンプルプログラムを作成します。
いつものように画面に "Hello World!!" と表示するものです。
DOM関連はDOMライブラリをインポートして使用しています。
確認用のHTMLも作成します。
tasks.json, launch.json はこんな感じです。
これで、コンパイルするとフォルダに nimtest03.js が作成されています。
NimをJavaScriptに変換して動作されることは出来たけど、例えばJQueryとかJavaScriptのライブラリを使用する前提のばあいどうするんだろ??? という疑問が残ります。
このあたり "NIM" "JQUERY" なんかで調べてもいまいちいいのが出てこない。。。と思ったら一番上に "jsffi" なるキーワードが!!
調べてみたら Nim で JavaScript の外部ライブラリを使用するためのライブラリらしいです(JQueryだけではなく他でもいけるのかな?)。
なんだかこれで行けそうなので試してみる。
index.html も修正します。
今回 JQuery は Google の提供しているものを使用しています。
tasks.json を次のように直してコンパイル。
ただ、JSON表記が直で出来無さそうなのがめんどい。
あと、このやり方だと、"font-size" の様な、ハイフンの入ったキー名の指定が出来ない気がします。
(`font-size`とバッククオートで囲めば Nim のコンパイルは通るのですが、JavaScriptに変換された際に "fontHEX2Dsize" と勝手にハイフンが変換されてしまうようです)
JQueryのCSS指定の場合は、DOMの表記方法でも動くようなので(初めて知った。。。)一応回避は出来ましたが、他の用途でJSON形式のデータを扱う際に詰む場面があるのではと思います。
ちょっと微妙かな~。
現在検証中
Nimのソースコードで、VSCode上でのデバッグは出来るのだろうか?
(TypeScriptでは、出来ると聞いたことがあるので、何かしら方法はあるのかもしれない)
以上になります。