Why Lix!?
なぜ Lix なのか? (Why Lix?)
Nix言語は、個人のコンピュータからクリティカルなインフラのクラスターまで、多種多様なアプリケーションで使用されています。これを踏まえ、Lix チームは元の CppNix(本家Nixの実装)に対して、必要とされる一連の改善を提供するために活動しています。 企業の利益ではなく、コミュニティのために構築 (Built for a community, not for a corporation)
Lix はオープンソースのボランティアチームによって構築されています。上流の CppNix や企業主導のフォークを長年悩ませてきた「商業的利益」に代わる選択肢を提供するために存在しています。私たちは、公開されている利益相反(Conflict of Interest)に関する声明を遵守し、スポンサーシップ、方向性、モデレーション(運営)といった問題について、コミュニティの声を反映させることを誇りに思っています。 あらゆる背景を持つ開発者のための安全なコミュニティ (A safe community for developers of all backgrounds)
Lix は多様なユーザーグループによって開発されています。そのため、技術プロジェクトにおいて過小評価されがちなユーザーや開発者にとっても安全な場所を提供することに尽力しています。私たちはモデレーションを重視し、悪意のある参加者が社会的に弱い立場にあるグループを追い出すような行為を防ぐことに取り組んでいます。 ユーザーに寄り添う (Close to our users)
残念ながら、ここ数年の CppNix プロジェクトでは、いくつかの重大なデグレ(機能退行)が発生しています。そのため、Nixpkgs(公式パッケージ集)は、特に安定版チャンネルにおいて、最新リリースをデフォルトにしないという選択を繰り返してきました。Lix は「Lix on main」プログラムを通じて、可能な限りユーザーに近い存在でありたいと考えています。ユーザーが日常的に最新の変更を利用することを推奨し、迅速なサポートと修正を約束することで、Nixpkgs に導入される頃には十分にテストされた状態であることを保証します。 よりモダンな Nix 実装 (A more modern implementation of Nix)
Lix は、コードベースが進化し続けられるように設計されています。すでに、開発者の使い勝手を向上させビルド時間を短縮する最新の「Meson」ビルドシステムを採用しています。今後は、メモリ安全なプログラミング言語である「Rust」を段階的に導入し、現在の C++ コードの一部を補完、あるいは置き換えていく計画です。 成長の余地がある言語 (A language with room to grow)
上流の Nix とは異なり、Lix は「進化し続ける言語」を目指しています。堅牢な言語バージョニングシステムにより、後方互換性や正確性を犠牲にすることなく、言語を成長・進化させることができます。「成長の余地」があるということは、言語そのものだけでなく、ツール類における使い勝手(ユーザビリティ)やエルゴノミクス(人間工学的な使いやすさ)の改善の余地があることも意味しています。 明確な安定性の保証 (Clear stability guarantees)
大規模なコードベースを根本的に作り変え、新機能を追加しながら、同時に安定性を維持することは容易な目標ではありません。これを達成するために、私たちはどのコンポーネントを変更し、どのコンポーネントを(十分な安定性が確保できる状態に作り直されるまで)機能凍結するかを慎重に選択しています。安定性の保証については選択的に行い、何が安定しているべきか、何が変更され得るかを明確に定義しています。