個人的には TOML は「ちょうどいい」かなあ。YAML の大変さがなくて、Dhall ほど野心的ではない。言われてみると、TOML の作者も GitHub の共同創業者の一人なので、だいぶ有名人ですね。
ちょうどいいインターネット、Gemini
私がここ一年くらい気になっているプロジェクトに Gemini がある。Gemini は Gopher と Web (HTML + HTTP) のいいとこどりを目指すプロジェクトで、行志向のワイヤープロトコルと、その上にのる、これまた行志向の text/gemini
フォーマットで構成されている。
ここでいう Gopher は、Go のマスコットではなくて、1993年発行の RFC 1436 で定義されている、Gopher プロトコルのこと。世の中は広いもので、2021年の今現在も Gopher を使っていたり、それでブログのようなことをしている (ブログは Web + Log の略称なので、Gopher 上のブログは Gopher + Log を略して Phlog と呼ばれる) コミュニティが存在している。その中の一人 solderpunk が、Gopher の欠点を克服しつつも、Web よりもずっとシンプルなプロトコルとして設計したのが Gemini だ。
Web の複雑さがなぜ問題なのか? Project Gemini FAQ では、こう説明されている。
Modern web browsers are so complicated that they can only be developed by very large and expensive projects. This naturally leads to a very small number of near-monopoly browsers, which stifles innovation and diversity and allows the developers of these browsers to dictate the direction in which the web evolves.
実際のところ、2021年の Web ブラウザ、とりわけレンダリングエンジンで、最近の仕様を一通りサポートしていて、いまも開発が続いているものは
- Apple の WebKit
- Google の Blink (2013年に WebKit からフォーク)
- Mozilla の Gecko
の3つしかない。ここにマーケットシェアを加味すると、WebKit と Blink の二強状態といっても過言ではないだろう。私は Microsoft や Opera が自前のレンダリングエンジンを開発していた時代を知っているので、この現状には一抹の不安を感じる。
FAQ では Gemini のシンプルさについて、こうも説明されている。
Early Gemini discussion included three clear goals with regard to simplicity:
- It should be possible for somebody who had no part in designing the protocol to accurately hold the entire protocol spec in their head after reading a well-written description of it once or twice.
- A basic but usable (not ultra-spartan) client should fit comfortably within 50 or so lines of code in a modern high-level language. Certainly not more than 100.
- A client comfortable for daily use which implements every single protocol feature should be a feasible weekend programming project for a single developer.
プロジェクトがはじまった2019年の6月から1年半ほどたった2021年の1月現在で、クライアント、サーバーともに10を超える実装がある現状は、Gemini がこれらのゴールを満たせているのを示していると思う。
ちょうどよさの射程
Gemini が本当にちょうどいいというと、ほとんどの人にとってはミニマルすぎてちょうどよくはないと思う。なんせ画像のインライン表示すらサポートされていない。FAQ でも、Gemini は Web も Gopher も置き換えない、共存するものである、というのは明言されている。
一方で、前述のようにクライアントやサーバーは沢山あるし、はてなアンテナのような更新時間順リンク集である CAPCOM を見ると、毎日誰かが何かを更新していたりもする。検索エンジンも2つある。Gemini がちょうどいい人は、多くはないけどゼロでもない。
多数派にもなれないし、何かをディスラプトするわけでもない、でも同好の士を引きつけるだけのちょうどよさってのも悪くないと思う今日この頃です。