直感的で美しいシンタックス
複数の言語からインスピレーションを得ているため、 Nim のシンタックスは理解が容易あり、 コードの修正は非常に効率的なものとなります。
- インデントに意味を持たせたシンタックス
- Python に影響を受けた多重コンストラクタ
- 複数行ラムダ
- Oberon に影響を受けた可視性マーカー
- Pascal に影響を受けた効率的な定義ができる型階層 (type sections)
--- layout: default title: 特徴 css_class: features ---
Nim はプラットホームとして、すべての主要オペレーティングシステム、および様々なニッチプラットホームにも サポートしています。三大オペレーティング・システムを 完全サポートしていることを誇りに思います。
高速、逐次的であり、一時停止処理のない遅延 RC'ing ガーベジ・コレクター、あるいは、最大一時停止時間を指定できる 柔軟なリアルタイムガーベジ・コレクター。 それ以外にも様々な方法を選べます。
Cへのコンパイルにより、 最新のCコンパイラに備わっている様々な機能を Nim で享受できます。 このコンパイル方式の最大の利点は、素晴らしい移植性と最適化などがあります。 これらは大勢の個人と有力企業により、 40年以上に渡って実装が続けられてきました。
Nim で生成したバイナリは依存性がなく、通常は超小型軽量になります。 これにより、配布は簡単になるため、 ユーザの満足度が高まります。
上述のゲームは Nim で記述してあります。 コンパイルは JavaScript バックエンド、描画は Canvas API です。
ソースコード: https://github.com/dom96/snake
ゲームのウェブサイト: http://picheta.me/snake
パッケージ名とリポジトリ URL との対応付けは
GitHub
に収録されている packages.json
ファイルに定義されています。
パッケージは専用形式の .nimble
ファイルへ定義します。
このファイル形式は Nim コンパイラにより評価されます。
つまり、オペレーティングシステムの決定と外部依存性の指定ができるなど
豊富で強力な機能を実現するため、プログラミング言語 Nim
で広大なサブセットをサポートできます。
Nim は C, C++ と Objective C ライブラリとの接続が簡単です。 これにより、開発者は広大で成熟したエコシステムと 強力なライブラリへ容易にアクセスできるようになります。
例外で Nim アプリケーションがクラッシュするとき、 終了前にスタックトレースを出力します。 このスタックトレースの書式は非常に理解しやすく、 例外のデバッグで必要な全情報を記載してあります。