静的型付けコンパイル言語。実行速度と書きやすさを両立しているという評価がある。
Pythonと同じくインデントでブロックを決定する。他にもif文のカッコや行末セミコロン不要など、基本的な構文はPythonとよく似ている。
Nimのコンパイラは、一旦NimコードをCコードにしてからgccで実行ファイルを生成する。javascriptにも変換できる。
また、Cライブラリの生成も可能なので、一手間かければ速度が必要な部分をNimで書いて、Pythonなどから利用することもできる。
インストールは、zipを落として任意の場所に展開し、パスを通す。
finish.exeで、以下の3つの設定を自動で行う。
{nim}/bin
にパスを通す
Cコンパイラは既にインストールされていればそれを使えるが、Windowsの場合いろいろ互換性が面倒なので、動かないことがあるかも知れない。容量は食うが、nimで動くことが確認されているmingwを個別にインストールしておいてもいい。mingwは{nim}/dist
以下に配置される。{nim}/config/nim.cfg
でパス指定されたCコンパイラを使用するので、mingw自体は既存環境を邪魔しないし、後から変更も可能。
(必要に応じて再起動後)cmdから'nim
'で確認。
echo "Hello World!"
main関数とかいらないこの簡潔さ。
> nim c -r helloworld.nim
'c
'はCコードに変換してコンパイルする指定'-r
'を指定するとコンパイル後即実行リリースモードでコンパイルすると最適化が働き実行速度・バイナリ容量が改善される。
> nim c -d:release helloworld.nim
Aporia という専用IDEが開発されていたが、VSCodeのプラグインが十分使えるようになってきたため、Aporia開発者も更新停止してそっち使ってとのこと。他にもAtomなどのプラグインが存在。
VSCode上でのビルド用tasks.json例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
{ "version" : "2.0.0" , "tasks" : [ { "label" : "nim build" , "command" : "nim" , "args" : [ "c" , "-r" , "${file}" ], "options" : { "cwd" : "${workspaceRoot}" }, "type" : "shell" , "group" : { "kind" : "build" , "isDefault" : true } } ] } |
nimbleというツールが付いてくる({nim}/bin/nimble.exe
)。管理だけで無く、パッケージビルドシステムも兼ねる。