新しいプログラミング言語 ANIL (A Nice Intermediate Language)が開発者コミュニティで議論を呼んでおり、その反応は命名に関する懸念から、設計哲学や実装の選択に関するより深い議論にまで及んでいます。
物議を醸す命名
この言語の名称が予想外の議論の的となっています。一部の開発者は Anil が特定の文化圏では一般的な名前であると指摘する一方で、国際的な観点からこの頭字語の再考を提案する声も上がっています。
設計哲学と実装
ANIL は Python と C++ の両方の要素を組み合わせたハイブリッド言語として位置づけられ、静的型付けや C ソースファイル内への埋め込み機能を特徴としています。しかし、この手法は開発者コミュニティから様々な反応を引き起こし、特に特定の言語機能の実装について議論が交わされています。
「率直に言わせていただくと、これは Python スタイルのホワイトスペース感知と C スタイルの中括弧、そして両者からランダムに取り入れた機能の不思議な組み合わせです。」
主な機能:
- テンプレートをサポートするクラス
- 関数のオーバーロード
- コンパイル時のリフレクション
- アノテーション
- 標準ライブラリ統合
- Python スタイルの dunder メソッド
- C コード生成機能
必要要件:
- C コンパイラ
- Python
- clang-format (推奨)
学習ツールvs実用言語
コンパイラ開発の学習演習としてのプロジェクトという文脈が、議論の重要な部分となっています。作者は3つの主要な目的を明確に示しています:コンパイラ開発の学習、自己コンパイル可能なコンパイラの構築、そして興味深い機能の実装です。この透明性により、本プロジェクトは実用的な言語というよりも、教育目的の取り組みとして適切に位置づけられています。
機能セットと標準ライブラリ
ANIL はクラス、テンプレート、関数オーバーロード、マクロ、コンパイル時リフレクション、アノテーションなど、いくつかの注目すべき機能を実装しています。また、 Python スタイルのダンダーメソッドも採用していますが、この選択は新しい言語エコシステムにこのような規約を取り入れることの是非について議論を呼んでいます。
このプロジェクトは、言語設計の選択と新しいプログラミング言語作成の課題を示す興味深い事例であり、技術プロジェクトの発展における コミュニティフィードバックの重要性も浮き彫りにしています。