公開:使えるものになるという、地味な仕事

名前を持つことは、利用できることと同じではない。私的な実験を世界に開くことは、言語設計をまったく含まない別種の仕事だ —— ライセンス、継続的インテグレーション、ドキュメント、英語への切替、組織、暫定的な構文ハイライト。公開は、外せない/第一印象/後回し可に階層化された —— 言語が説くのと同じ「必要なものを出す」規律を、その公開自体に向けたものだ。

merepublic-releaseopen-sourcetoolinglanguage-design

言語はアイデンティティを持っていた —— 名前、メタファー、四文字のマニフェスト。まだ公的な存在は 持っていなかった。名前を持つことは、利用できることと同じではなく、その隔たりを埋めることは、言語 設計をほとんど含まない仕事だ:ライセンス、継続的インテグレーションの設定、他者が辿れるドキュメント、 作業言語の英語への切替、住む組織、ファイルのフォルダではなく言語として現れる道。この Part の締めの 回は、その地味な仕事についてで、そしてそれをきちんとやることこそ、そのものを試すかもしれない見知らぬ 人への敬意が実際どう見えるかについてだ。

公開を階層化する

公開前の仕事は、言語自身が建てられるのと同じやり方で整理された:最小の正直な版が先、他のすべては 後回し。タスクは三つの階層に仕分けられた —— これがないと出せない第一印象に大きく効く後回しで結構 —— それはただ、「必要なものを出す」規律を、コードでなく公開に向けたものだ。

外せないものは、その不在が公開を単に粗くするのでなく無責任にするものだった。ライセンス、 コードを読む誰もが、それで何をしてよいかを知れるように。継続的インテグレーション、ビルドが通り テストが通るという主張を、訪問者が信頼で受け取るのでなく検証できるように。あらゆるページで最新に されたドキュメント —— チュートリアル、リファレンス、変更履歴 —— 現状について嘘をつく docs は 無いより悪いから。そして英語への切替、オープンソースのプロジェクトは大半が英語を読む世界に 向き合うから、docs の作業言語は英語へ移り、日本語は master として残すのでなく翻訳として保たれた。

第一印象の階層は、組織と、リポジトリを public にする行為だった —— 本物だが、急いでも生き延び られる。そして後回しの階層がより面白い。それが何を建てるのを拒んだかゆえに。

意図して建てなかったもの

公開からの際立った欠落が、パッケージマネージャだった。それは言語が「持つべき」類のもので、 はっきりと外された。理由は「必要なものを出す」規律を平然と述べたものだ:パッケージマネージャが仕える adoption がまだ無く、だからそれを建てることは、存在しないユーザのためのインフラを建てることだった。 正直な間に合わせ —— 標準ライブラリに頼り、必要なら git URL で import する —— はほとんど何のコストも なく、本物の需要が現れた瞬間に置き換えられる。パッケージマネージャを先に建てることは労力での投機だ; それを後回しにすることは、需要の形をまだ知らないと認めることだ。

同じ抑制が構文ハイライトにも適用された。新しい言語をきちんと認識させること —— エディタとコード ホストでのそれ自身の配色 —— は、ただ宣言できるものではない;言語を認識するプラットフォームは、言語が 使われることで越える閾を持ち、書かれるべき文法を持つ。だからその間、ファイルは既存の言語のハイライタ を借りるよう印づけられた —— 暫定的であることに正直な暫定的な取り決め、本物の認識が本物の使用から従う のに任せながら、コードを読むのに十分なだけの。

信頼こそが実際の成果物だ

チェックリストから一歩下がると、その中のパターンは一つのことだ:外せない項目のほぼすべてが信頼の シグナルだ。ライセンスは明示された許可 —— 言語自身の、環境的に委ねるのでなく率直に言う好みの、 法的な対応物。通る CI バッジは、「私のマシンでは動く」と「私のではないマシンで動くのをあなたが見られる」 の違いだ。最新のドキュメントは、読むものが得るものだという約束だ。このどれも言語の feature ではない; そのすべてが、見知らぬ人がそのプロジェクトを、一時間費やすほど真剣に受け取れる理由だ。地味な雑務は、 まさに、もてなしだ —— 自分のために建てたものを、他者に差し出されるものにする仕事。

そして公開と言語の間に、名づける価値のある静かな一貫性がある。ライセンスは今すべてを固めるのでなく 将来の選択肢を予約する;パッケージマネージャは見える需要を待つ;ハイライトはそれ自身を得るまで借りる。 そのそれぞれが、設計が何度もした同じ手だ —— 知ったときにコミットし、知らないものは後回しにし、どちらが どちらかに正直であれ。プロジェクトが公になるやり方は、それが建てられたやり方と韻を踏むと判る。

私的な実験から公のものへ

ライセンスが据わり、テストが public で緑に走り、docs が最新で英語で、リポジトリがそれ自身の組織の 下で開かれて、言語はこの Part が扱った線を越えた。それは「私が取り組んでいるもの」であることをやめ、 見つけられ、読まれ、試すほど信頼され、そして —— 本当の試練 —— 先行するどの Part にも居合わせなかった 誰かによって、その上に建てられうる何かになった。

認識は、もちろん、公開によって与えられない;それは、その後に起きることから積もるか、積もり損ねる。 だが扉は開いた、それがこの Part の仕事のすべてだった。動き、セルフホストし、名づけられ、文書化され、 ライセンスされた言語が、いま公に存在する。

それは、公で生きている言語がいつも次に直面する問いを立てる:それは何を育てるのか? 使えることは 始まりで、終わりではなく、この言語が扉を開いた後に手を伸ばした最初の実質的なものは、言語がその原則を 裏切らずに加えられる最も難しい feature の一つだった —— 一度に複数のものを、安全に、保証を保ったまま 走らせること。次、Part VII が開く:並行処理。

← Back to Mere: 言語を作る