何回同じタイトルのことを考えたか正直わからないのだけれど、最近V言語でいろいろトライしているノウハウの蓄積によって、今度こそC言語の上に乗る言語を操れるような気がしてきて、改めてnimに向き合ってみても良いかなという気がしてきた。

早速 nimble によって naylib (Raylibラッパー) や slappy (サウンドライブラリ)、そして sokol-nim などを使って楽しく遊んだりはできたのだけれど、その他いろんなライブラリが依然としてうまく動作しないのは、ユーザが少なくて保守されていないのでやむを得ない感じはする。

でもうまく動くライブラリの上では、nimがどういうC言語を吐くかというのは案外気にならないものだなという気はしてきて、V言語の最大のメリットである、可読性の高く保守のしやすいC言語を出力するというのも、抽象度が上がりさえすれば(あとうまく動きさえすれば)気にならなくなるのだなという実感は得られた。

V言語でいう v translate wrapper 等は c2nim (nimble install c2nim) がほとんど同じ役割をしてくれているようなので心配ないようで、あとはLSPの性能とデバッガくらいかなとは思う。

V言語のシンプルさに慣れていると、最初こそnimを久しぶりに見るとなんだか奇妙な言語に思えたのだけれど、でも慣れると自由度の高さがなんとなくPythonというよりRubyのような面白さがある気がしてきて、そこにさらにマクロ等の魅力が加わるなら、まるでCのように、シンプルさよりも自由度が勝る部分もあるのかもしれないと思った。

ホットリローディングにも少し期待していたけれど、nim 2.2.6ではなぜかわからないけれど、Vのようにうまく動かないようで、けどコンパイル時間は2回目以降は高速なので気にならにようには思う。

どこかで重い腰を上げて、loafのように oFをnimで呼べるようにすると幸せかもしれない。(V言語でも同じことはいつかやりたい。)

【追記】布石として、nimをC/C++から呼ぶ実験をしてみた。これでnimpyが呼べるので、C/C++からPythonを呼ぶ方法としては一番楽かもしれない。

https://github.com/funatsufumiya/call-nim-from-c-test/tree/nimpy


このエントリーをはてなブックマークに追加follow us in feedly