と信じたい笑

HashiCorp共同創業者でZigの主要なコントリビュータの1人であるミッチェル・ハシモト氏がなんと2年で30万ドルの寄付をすると言う。素晴らしい。というか流石シリコンバレーの一大企業創業者、すごいお金持ってるなあ…

zigは私がここ最近マジもんに惚れ込んでしまった言語で、本当に良いと思います。似たようなのはあるだろうし、荒削りな部分が沢山あるけれども、何より書いていてメチャクチャ楽しい。出会った頃合いの時点で、zlsやzvmなど、ある程度ひねられたツールがサードパーティで出たのは大きいですね。

この言語に出会わなければ、自分のやってきたC言語などを見直すこともなかったろうし、クロスコンパイルの容易性、C移植の容易性、WASMコンパイル…ビルドシステムとツールチェーン、エコシステムが整備されないと扱いづらい部分は多々あるし、自分も理解できていないことが多々あるけれども、魅力的な部分が沢山ある。

例えば、こんなことはどうやらできてしまった

  • WASM/WASIコンパイルしてNode.jsで使用する
  • CまたはC++のライブラリを組み込んでZigプログラムで呼び出し、実行ファイルはリンクさせる(C++はexternしたラップ関数を使用)
  • 静的ライブラリを作成し、C向けのヘッダを生成してCプログラム・C向けビルドシステムで扱い、実行ファイルにリンクして組み込む
  • DLLを生成して.NETでFFIとして使用する

また、GoやRustのように導入は比較的容易で、Pythonなどの一部言語やC/C++の一部環境のようにNixなどの一部システムでpipを使うと怒られたり動かない、なんてことは比較的出会っていない。よくこの部分は出来ている。

ビルドシステムはCMakeやmesonの系譜にあり、やや扱いづらいが、クロスコンパイルに関しては非常に吐き出しやすい。例えばC/C++では専用のコンパイラ(gnuwin32など)を用意して専用の設定ファイルを書き、それを正しく呼んでいるか注意する必要があるが、Zigは独自のclibとコンパイラを持っているので、全て任せられる。現状スクリプトを書いたり手間が出るが、Zig言語専用のパッケージの導入ツールなどの簡素化が進めば、一気に使いやすくなろう。

まあRustでできるじゃん、というのは確かなので、私がRust覚える気がしないのが一番ダメなのだろうけど。Rustは大企業がどんどん使い始めたおかげで、コロナ禍あたりからエコシステムが明らかに整備されてきましたよね。今ではnugetやnpmと比べても遜色ないくらいに充実してる気がする。

Bun、tigerbeetle、Riverなどかなり魅力的なプロダクトが出てきたのは結構大きいと思う。VercelやUberもクロスコンパイルツールとして活用しており、他の新興言語と比べても明らかに頭1つ確実に飛び抜けてる魅力がある。てかホント、どうやって仕様読み解けてあんなに良いもん作れるんだ笑 英語の壁はあるにしても、尊敬しかない。

特に暗号界隈やインディー・ゲーム開発者などの経緯を持った人間も興味を寄せているのはWebに寄りすぎな昨今にしては、かなり珍しいと思います。なので標準ライブラリの暗号系が「プロ中のプロ」によって書かれた、なんてのも面白い歴史がある言語じゃないだろうか。

この言語は、まだまだハマっちゃいそう笑

5年後にはきっと化けてるんじゃないかと、信じています。