「Nim」基本情報
■概要
Nim(ニム)とは、システム/アプリケーション開発用プログラミング言語で、「C言語の処理速度とメモリ効率性」を発揮できるコンパイル言語です。
■基本説明
Nimは「静的型付き言語」「C言語の処理速度とメモリ効率性」「メモリ安全性」「高性能ガベージコレクション」「複数ターゲット言語対応」などの特徴を持ちます。シンプル構文により、効率的で表現力豊かなプログラミングを行えます。
多くのメインストリームプログラミング言語に引けを取らない強力な機能を提供します。
■動作環境
「Windows」「macOS」「Linux」などで動作します。
■経緯
・2008年 初版リリース
■ユースケース
Nimはさまざまなプログラミング用途で利用できます。
・カーネル
・Webサーバ
・コマンドラインアプリケーション
・ゲーム など
主な特徴
■クリーン構文
Nim構文はPythonのようにシンプルであるため、可読性が高く、効果的に修正できるコードを記述できます。
■メタプログラミング
Nimは強力なメタプログラミング機能を備えた小さなコア言語を実装しています。
Nimのメタプログラミング機能には、「ジェネリック」「テンプレート」「マクロサポート」などが含まれているため、さまざまなプログラミングパラダイムのサポートを拡張できます。
C言語にコンパイル
NimソースコードをC言語にコンパイルできます。
マシンのネイティブパフォーマンスを発揮でき、Cコンパイラが提供する多くの機能を利用できます。
JavaScriptにコンパイル
NimにはJavaScriptバックエンドが含まれているため、クライアントとサーバを同時にターゲット設定できます。
「C」「C++」「Objective C」へのラッピング
Nimは「C言語」「C++」「Objective C」ライブラリに簡単にバインドできるため、これらの言語の成熟した強力なライブラリを利用できます。
■メモリ安全性
Nimは「オプションチェック」「トレース参照/untraced参照/非nullable型のポインタ演算を実行しない」などの仕組みによりメモリの安全性を確保できます。
■極小バイナリサイズ
Nimは「依存関係なし」かつ「非常に小さいサイズ」のバイナリを生成します。
■コードエディタサポート
多くのコードエディタがNim言語をサポートしています。
・Atom
・Emacs
・Sublime Text
・Vim
・Visual Studio Code など
主な機能
■自動ガベージコレクション
Nimは、サイクル検出を伴う遅延参照カウントに基づく調整可能な自動ガベージコレクション機能を提供します。
■パッケージマネージャー「Nimble」
Nimのパッケージマネージャー「Nimble」は、パッケージをGitリポジトリとMercurialリポジトリを介して配布する分散パッケージ管理を行います。
■スタックトレース出力機能
例外によりNimアプリケーションがクラッシュすると、終了する前にスタックトレースを出力します。
このスタックトレースには、例外をデバッグするために必要な情報がすべて含まれています。
補足情報
■同様製品
同様な機能を提供する製品として、次のようなものがあります。
オープンソース製品:「Python」「Rust」「Go言語」など。
■オフィシャルサイト
オフィシャルサイト
→Nim(Nim programming language | Nim)
ライセンス情報
Nimのライセンスは「MITライセンス」です。
詳細について、こちらを参照ください。
→GitHub →nim-lang/Nim →copying.txt
ダウンロード
参考元サイト
※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。