/note/tech

Zigソフトウェア財団とZenプログラミング言語に関する声明

「Zigからの発展」ページにおいて、コネクトフリー社はZenはZigバージョン0.3.0から独立して進化してきたとしており、またZigの貢献者である「No.5」と「No.2」はコネクトフリー社の従業員であり、「No.5」はコネクトフリー社創設者のクリストファー・テイト氏であると述べています。この他に、このページではZenがZigと比較してどのような点で優れているかというバリュー・プロポジションと、開発チームのある種の正統性——彼らが信頼に値する存在だということを示そうとしているようです。

Zenが独立的に進化してきたという主張については、私どもはクローズドソースであるコンパイラの内部実装についてはコメントできないものの、Zen標準ライブラリのソースコードはZenリリースの度にまだ入手可能です。このソースコードを読むと、コネクトフリー社がZigプロジェクトからいまだに多くのコードを借用していることが簡単に分かります。ほとんどの場合、彼らの命名規則に合わせるために非常に小さな変化を適用しているに過ぎません。この一例として「async/await」機能があります。この機能はZigバージョン0.6.0 (バージョン0.3.0の約1年半後) で導入されましたが、コネクトフリー社によってZenに実質的に全く変更なくコピーされました。もう一つの例として、こちらのリンクから二つのイベントループ実装の比較をご覧いただけます。

開発チームについてのお話をしましょう。「No.5」(すなわちクリストファー・テイト氏) はZigプロジェクトの公共の場であるGitHubとIRCで繰り返し問題のある行動を行ったため、プロジェクトから追放されなければならなくなりました。こうした経緯があることをコネクトフリー社は明らかにしていません。その後、テイト氏は「No.2」をZenコンパイラに取り組ませるために雇いましたが、この契約にあたってプライベートな時間で作られたものも含め「No.2」が書いた全てのコードの所有権がコネクトフリー社にも帰属するという契約内容について適切に明確化することを怠りました。その時以来「No.2」はコネクトフリー社の職を辞めましたが、契約の中に示されている「競業避止義務」条項のために、Zigプロジェクトにしばらくのあいだ貢献することもできません。さらに、テイト氏はいくつかのZigコミュニティで宣伝活動を行い、複数のZigコントリビュータをメール経由でスカウトしようとしていたことが知られています。おそらく「No.2」と同じ契約条件で雇おうとしていたものと考えられます。

コネクトフリー社の創設者であるテイト氏は、不完全な技術論により彼自身の行動を正当化しようとすると同時に、契約条項を利用してZigの貢献者がこのオープンソースプロジェクトに更に貢献する事を阻止しています。また、コネクトフリー社のZenはZigを表面的にリブランディングしたものに過ぎません。このようなテイト氏の過去と現在の振舞いから、日本の専門家や会社がこうしたクローズドソース製品に頼り生計をたてようとするのは、私どもの良識としてはお勧めできません。

Zig言語からforkしたZen言語についてZigコミュニティが苦言を呈している。