Nimについて
このブログはプログラミング言語であるNimについて書いていくブログです。
Nimは既存の言語の良いところを寄せ集めたような言語で多方面に優秀な言語です。
しかし、Nimはまだ言語自体が若く(Ver1.0がまだ出ていない)、日本では相当マイナーな部類の言語です。
それに伴って日本語での情報が少なく、使おうとすると英語のドキュメントを読むのが必須になったりします。
英語のドキュメントがあればまだいい方で、ライブラリなどはソースコードを読まなければならない場合も多々あります。
なので、数少ない日本語でのNim情報を少しでも増やせればなぁと思いブログを作りました。
Nimの特徴
- C言語並みの実行速度
- Python風構文
- ソフトリアルタイム向けのGC搭載
- 強力なメタプログラミング
- コンパイラはCへのトランスレータ。他にもJavaScriptやObjective-Cなどにも変換可能。
その他自分が良いと思ったところとして、
- 豊富な標準ライブラリ
- コンパイルして生成されるバイナリサイズが小さい
- nakefile(MakefileのNimDSL版)などのDSLが可能
- VM実装がある
- Nimの処理系自体がライブラリとして利用可能
- GCが制御可能
- 最適化のための機能が多い(unrollなど)
- Go言語にあるようなdeferなどの便利機能が多い
- インクリメンタルコンパイルが可能
- パッケージマネージャが公式で存在する(nimble)
などがあります。
書きやすく、速度が速く、生成されたバイナリがポータブルなのでコマンドラインツールなどに向いていると思います。
他にも、GCが高性能かつ制御できるのでゲームエンジンなどにも向いていると思いました。実際のところ作者は明確にC++を意識しているらしく、パフォーマンスへのこだわりが感じられます。
自分としてはすごく気に入った言語なので、これから記事を少しずつ書いていこうと思います。