Scribble at 2026-08-05 21:54:23 Last modified: 2026-08-06 05:44:44

添付画像

いわゆるモダンなプログラミング言語として Go などを学んでいるけれど、Zig も試しに使ってみようかという気になってシンタクスを調べると、最初からなんだか僕の開発スタイルには合わないような気がしている。

たとえば、Zig には行単位のコメントしかないと書かれていて、これは確かにそうなのだが、だからといってコメントのフォーマットや書式が一つしかないという意味ではない。実際には "doc comments" という書式があり、直後に宣言するモジュールなど用途に応じて別の書式があるのだ。これは、Zig の設計思想として「正しいプログラミングの答えは一つだけだ」というものがあって、簡単に言えば開発者に選択の余地を与えず、そうする他に選択の余地がないプログラミングが理想だとされる。したがって、ただのメモには "//" を使い、モジュールのコメントには "top-level doc comments"("//!" で始まる)を使い、直後に宣言される変数や関数のコメントには "doc comments"("///" で始まる)を使う。こうして、コメントの用途を分けることによって、特別な種類のコメントはドキュメントを生成するツールで用途に応じて処理されるようになる。つまりは、用途に応じて "// [用途]" などという規約をチームや会社で決めたりするような選択の余地を残すと、逆にチームや会社ごとに異なるコメントの運用になってしまうのでよくないということだ。

しかし、逆に言えば Zig は公式のエコ・システム内で使うドキュメンテーション・ツールの挙動に言語仕様が拘束されるという、僕に言わせれば本末転倒な設計になっているように思える。コメントの規約がヒトによって、チームによって、会社によって異なるせいで不整合が起きるとしても、それは開発者という人や集団の問題であって、プログラミング言語が仕様として強制し解決するようなことなのかという疑念があるからだ。つまり、Zig というのはコード・フォーマット規約すら一貫して運用できない「バカ専用」の言語なのかということである。あるいは、Zig の処理系を開発するチームは生成 AI の利用を否定しているようだが、寧ろ彼らこそ生成 AI がプログラミングすればいいとでも思っているかのような思想で処理系を設計しているのではないかと思う。

僕は、四半世紀を超える経験や知識や技術の積み重ねをもつエンジニアとして、こういう侮辱的な設計思想の仕様をもつ言語を好んで使う気にはなれない。ドキュメンテーション・ツールのためだけに "//!" なんていう奇妙な書式をわざわざ覚えるなどという愚行のコストこそ、われわれプログラマの敵ではないのかと思うのだが。

  1. もっと新しいノート <<
  2. >> もっと古いノート

冒頭に戻る