新言語Wyzer:分散安全性を統合したコンパイル型言語
原題: Show HN: Wyzer Programming Language
なぜ重要か
分散システムの安全性を型システムで保証するChoreographic Programmingの実用的な実装例として、分散アーキテクチャ設計の新たなアプローチを示す取り組みである。
開発者のAtiksh Sharma氏が、静的型付けのコンパイル型プログラミング言語「Wyzer」をGitHub上でオープンソース公開した。Rustが解決できない分散システムのデッドロックやプロトコル不一致などの問題を、振付プログラミング(Choreographic Programming)とPerceusメモリモデルを組み合わせることで解決することを目的としている。
Wyzerは、静的型付け・コンパイル型・リソース指向のプログラミング言語として設計されており、分散システムにおける安全性の確保を主な目標としている。GitHubリポジトリはStar数87を記録しており、Apache-2.0ライセンスのもとで公開されている。
開発の動機について、作者はRustがプロセス内の安全性を保証する一方で、分散デッドロック、プロトコルの不一致、クロスサービスの正確性については何ら対処していないと説明している。Wyzerはこの問題を解決するため、「Choreographic Programming(振付プログラミング)」の概念を導入している。これは、複数のサービスやプロセスにわたる通信プロトコルをグローバルな視点で記述・検証する手法であり、分散システムの正確性を型レベルで保証しようとする試みである。
メモリ管理にはPerceusモデルを採用している。Perceusは参照カウントに基づく関数型プログラミング向けのメモリモデルであり、ガベージコレクションなしに効率的なメモリ管理を実現する。
リポジトリにはREADME、仕様書(SPEC_SHEET.md)、設計ドキュメント(DESIGN.md)、ABI仕様(ABI_SPEC.md)、研究資料(RESEARCH.md)など複数のドキュメントが整備されており、コミット数は72件となっている。公式ドキュメントとして、変数と型、制御フロー、関数とStructs、メモリモデルなどのセクションが用意されている。コントリビューションを歓迎しており、参加希望者はRESEARCH.mdの参照とDiscordサーバーへの参加が案内されている。