Zigで爆速UI開発!GPUアクセラレーション対応フレームワーク「Gooey」が登場
Gooey: A GPU-accelerated UI framework for Zig
Gooey: A GPU-accelerated UI framework for Zig
Zig言語のポテンシャルをフル活用!GPUアクセラレーションによって圧倒的な描画パフォーマンスを実現する新しいUIフレームワーク「Gooey」が公開されました。Zigのメモリ安全性と低レイテンシな特性を活かし、サクサク動くUIを構築したい開発者には注目のプロジェクトです。
面白いプロジェクトだけどドキュメントが必要だね。特に、どのようなモデルを使ってるのか?つまりイベントや状態管理などがどう処理されているのか知りたい。普通ならコード例から読み解くところだけど、READMEの例が200行超えで自分には長すぎるよ。(ここで教えてくれなくていいから、ドキュメントを改善して。みんなのためにもさ!)
インスピレーションの項目にZedのGPU UIフレームワーク「GPUI」があるのはいいね。でも、比較表があるとすごく助かる。ZigでGUIアプリを作ろうとしたとき、GooeyとGPUIをどう使い分ければいいのか?今のところ、GPUIの方が成熟していて成功事例もあるってことしか知らないから……。あと、同名のPython用ライブラリ(https://github.com/chriskiehl/Gooey )と名前が被ってるね。
これは素晴らしい。こういうのがもっと必要だよ。Electron支配の暗黒時代から脱却し始める時期がとうに来ている。Bitwardenの最近の改悪(リデザイン)を見れば明らかだし。
良さそう。でもUIフレームワークでいつもガッカリするのは、画面に何かを出すまでの手間が多すぎること。最初に触れた言語がBorland Turbo C++だったんだけど、あの頃は比較にならないほど単純に何でもできた。画面に円を描きたいならこれだけで済んだし:
#include <graphics.h>
#include <conio.h>
int main() {
int gd = DETECT, gm;
initgraph(&gd, &gm, "C:\\TURBOC3\\BGI");
circle(320, 240, 100);
getch();
closegraph();
return 0;
}
図形やフォームを作るのもそれほど大変じゃなかった。VBやWindowsの時代を振り返っても、基本的なウィンドウやボタンの配置はすごく簡単で、GUIビルダーが優秀だったのも納得できる。どこかでGUIの実装は複雑になりすぎてしまったんだ。
AIによって実現されたものだとしても、Zigのエコシステムが成長しているのを見るのは嬉しいよ。人間がやったならもっと良かったんだけど、AI肯定派と否定派の間で議論を始めるつもりはないからね。
最近のHNのコメントで、こうしたフレームワークが(ターミナルやフォーム、TUIといった)用途に対してどれだけ電力を浪費しているかという指摘を見て、新しいフレームワークを試すのがすごく楽しみだった気持ちが冷めちゃった。将来的にこれらは『肥大化したゴミ(bloat)』と見なされるんじゃないかな。
説明を読んでも、テキスト描画がGPUアクセラレーションされているのかどうかが分からなかった。個人的には、テクスチャアトラスからクアッドを描画する方が効率的だと思うんだけど。
このプロジェクトが大部分LLM(レポジトリにCLAUDE.mdがあるからおそらくClaude)で生成されたものだというのは、今さら言うまでもない自明のことだね。自己反省も行われているみたいだけど…… https://github.com/duanebester/gooey/blob/main/docs/architectural-cleanup-plan.md
今って「低品質なコードを素早く出力する」のが当たり前になってしまったのか。期待感に胸を膨らませても、実装の現実にガッカリさせられる。もちろん、慎重かつ思慮深く開発されている新しいものもあるよ。Zig自体とか、MitchellHのghosttyとか。それにLinus Torvaldsのような世代のエンジニアたちが、技術と創意工夫、そしてハードワークで作り上げた本当に素晴らしく堅牢なソフトウェアの基盤もまだある。
でも、もっともらしい開発プロジェクトが次々と押し寄せてくる一方で、中身はセキュリティや安定性、パフォーマンスを考慮すべき本番環境では決して使えないような「LLM生成のゴミ」ばかりという時代に突入するんじゃないかと危惧してる。素晴らしいソフトウェアの黄金時代は終わりを迎えつつあるのかもしれない。
Zooeyという名前にすればよかったのに。