Nim プログラミング言語は月曜日にバージョン 1.0 に到達し、安定性の保証とファン コミュニティからの熱意をもたらしました。
「バージョン1.0は、今後数年間使用できる安定した基盤の始まりを示すものであり、Nimの将来のバージョンでは現在のバージョンで記述したコードが壊れることはないことがわかります」とNimチームは月曜日に述べた。
NimはJavaScriptのようなインタープリタ型言語ではなく、C言語のようなコンパイル型言語です。そのため、コンパイルによってソースコードが特定のハードウェアに適した効率的なネイティブ命令に変換されるため、パフォーマンスが向上する傾向があります。また、C言語やJavaと同様に静的型付けであるため、型関連のバグを回避し、パフォーマンスを向上させることができます。言語とコンパイラはMITライセンスの下で提供されています。
さらに、Nimはメモリ安全性をサポートしながらも、非常に扱いやすい言語です。コードは読みやすく理解しやすいため、C、C++、Objective-C、JavaScriptにコンパイルできます。自動メモリ管理(ガベージコレクション)と手動メモリ管理の両方を提供します。
クリックして拡大
チームの目標は、1.0でコンパイルされたNimコードが1.xリリースでもコンパイルできるようにすることです。約1年前に公開されたNimコミュニティのアンケートでは、安定性とドキュメントの充実が最も多く要望された2つの機能でした。
Nimの開発者で、Nimコミュニティでは「araq」として知られるAndreas Rumpf氏は、ブログ投稿でこの節目を祝いました。バージョン1.0では、新機能の追加においてより厳格なプロセスを採用するとRumpf氏は語りました。
「バージョン1.0から、我々は『仕様優先』の開発方式を採用しています。まずRFCを書き、次にそれについて議論し、次に仕様を書き、次にそれを実装し、そして実装から得られた知見を仕様に反映させるのです」と彼は説明した。
Nimは、学習の容易さという点ではGoとRustの中間に位置すると評されています。また、タイプミスを防ぎ、より高速なPythonとも評されています。PythonはNimと同様に読みやすいため、よく評価される言語です。
「NimはPythonにインスパイアされた構文と強力な関数型機能、そして急速に進化するライブラリを備えた、魅力的な小型言語です」と、UserifyのCEO、ジェイミーソン・ベッカー氏はThe Registerへのメールで述べています。「ツールも非常に優れており、使い心地も快適です。」
ベッカー氏はNimのクロスプラットフォーム機能も高く評価した。「建設的な批判もいくつかありますが、Nimが成熟するにつれて、数年後には解決されると思います。」
ベッカー氏は今年初めの Hacker News の記事で、Nim は Rust などと並んでシステムプログラミング言語として検討される価値があり、Nim ライブラリが成熟するにつれてアプリケーション言語としての魅力がすぐに高まるはずだ、と述べた。
Lighthouse のシニア機械学習エンジニアである Timothee Cour 氏はThe Registerへの電子メールで、Nim の利点は C のスピードと移植性、Python の使いやすさ、高速コンパイルを提供し、モバイル、フロントエンド、バックエンドのスタック全体を同じ言語と標準ライブラリで使用できることだと述べています。
「D言語と同様に、Nimは比較的自由主義的で、複数のプログラミングパラダイム(命令型、ジェネリック、オブジェクト指向、関数型)をサポートしています」と彼は述べた。「しかし、Nimを他の言語と真に区別するのは、独自のメタプログラミング機能です。」
「特にNimマクロは、構文ツリーを操作してカスタムDSLを記述したり、定型文を削除したり、バインディング(nimterop)やコマンドラインインターフェース(cligen)を自動生成したり、Python(nimpy)と統合したり、シリアル化/デシリアル化(protobuf-nimなど)を自動で行ったり、ReactライクなシングルページWebアプリ(karax)を生成したりといった機能を提供します。さらに、コンパイラの負荷を増大させることなくライブラリによる言語拡張も可能になります。これらすべてがコンパイル時に実行できるため、makefileや複雑なビルドスクリプトも不要になります。」
Haxeといくつかの類似点を持つこの言語は、現時点ではあまり広く使われていません。UserifyとStatus.im以外では、Nimコードを採用している企業はごくわずかです。しかし、Nimを試した開発者は概して好意的な評価をしており、この言語は今後も多くのファンを獲得していくことが予想されます。®