每一篇课文,都以它说不出的话收尾
Every Text Ends With What It Could Not Say
九月二日,一个署名 Recep Cinet 的人开了一门语言,叫 Amadunia(ama 爱 + dunia 世界)。设计原则只有一条:从每一种语言里取最容易的那一部分,其余的留在门外——「如果一个音或一条规则对地球上任何人来说是难的,它就出局。」二十个字母,一个字母一个音,永远不变;三百个词根;二十一条已定的语法;二十六课;三十篇课文。九月四日他把它贴上 Hacker News,标题下那句自述是「一个所有数字都由源代码仓库算出来的造语网站」。得到一分,零条评论。仓库到今天是二百六十二次提交,零颗星,零个 fork。这门语言七天大。
那条原则是一次凿。凿必然留下余项:被规则杀掉的那些词。绝大多数造语工程把它们当工程废料删掉,只把活下来的那份词表交出来。Amadunia 反过来——它把死掉的词留着,而且连同代价一起登记。hijau、anjing、mvua 因为用了二十个字母以外的字母出局,失去的是「绿」「狗」「雨」;fenestra、Fenster、skribi 因为三个辅音连排出局,失去的是「窗」和「写」;beli 因为离 beri(给)只差一个音出局,失去的是「买」;luna 因为离 luma(光)太近出局,失去的是「月亮」;matar 因为在西班牙语里是「杀」,失去的是「结婚」。README 里那张表不写「beli 被否决」,写的是「beli 被否决——失去:买」。余项在这里是标了价的。更硬的一例:ruma(房子)已经在材料里用过八十四次,仍然被处死,换成了 dom,理由是它与 luma 之间只差 l 和 r——作者认定这一条的位阶高于一个词流传多广。每条规则底下都压着一个它杀掉的词。
余项被抬成承重结构,一共有三处。第一,每一页语法都以「这条规则否决了什么」收尾。第二,三十篇课文,每一篇都以「这门语言说不出的话」收尾。第五篇是首诗,那一栏写着三件事:重音当时还没定,所以整首诗没有节奏——同一行两种读法都合法,两个人读不出同一个格律;没有「变化」这个词,而这首诗写的正是白天变成夜晚再变回来,语言叫不出正在发生的事;断句是否自由,仍未授权。第三,四十个悬案被收在一页上,按写作实际施加的压力排序:「那时」这个词以六个页面的需求领先,另有两个问题至今没有人伸手要过;其中四个不是故意留白,而是材料早已依赖、却从没有任何规则授权过的形式——祈使句以三个页面「试过又停住」领先,直到九月三日才被批准。也就是说,这门语言下一步长成什么样,由它自己的余项决定,不由设计者的计划决定。这是涵育,不是凿削:新的一轮不是把旧的削掉重来,而是从旧的身体里长出来。九月三日重音定下之后,那首写在无重音时期的诗第一次可以被扫格律——最后一行「Kita ama dunia una」竟然是全诗唯一齐整的一行,四个扬抑格,一个音节不多。作者自己写道:这是运气不是手艺,因为写下它的时候,没有任何规则能告诉任何人它的节拍在哪里。
还有一层更少见的。检查这门语言的脚本会连自己的拒绝清单一起生成:那一页叫「check.py 拒绝什么」,三百一十四条保证,一百四十三组,每一行都是检查器真会打印的那句原话,不是转述;清单由检查器自己生成,一旦与代码漂移,检查器就拒绝通过。但这一页也老实写下了一条它无法检查的保证——检查器验证不了「自己有多少行」,因为测试装置正是靠改写检查器来做变异测试的,改写会让它多出三行。原话是:一个描述某文件的数字,无法从该文件内部验证,如果验证它的工具会编辑这个文件。这句话被留在页面上,而不是被悄悄绕开。同一页还写着,这个行数曾经写作「一千一百」,直到九月六日才被发现早已过时——而这一页存在的全部理由,就是那些 Python 太长,没人读得完。
需要说清楚:造一门全球辅助语这件事一点也不新。世界语一八八七年就在了,有自己的国际大会、维基百科、一百多年的沉积——那是一个已构,它的美是上一轮凿构循环收尾之后留下的沉积。Pandunia、Globasa 早就在做同一件事。Amadunia 的目标不新;新的是它出版的那个东西:一门语言,主要产出竟然是它拒绝过什么的账本。这个东西还没有名字——它不是词典学,不是语法书,也不是设计文档。而这本账本连自己没做到的地方也一并登记。词源统计显示欧洲词根占三成四(世界语约九成五),按「触达」算最大的是南岛语系 38.3%;紧接着是这几行:汉藏语系 4.0%,日语系 2.7%,朝鲜语系 0.0%。一门宣称「每一个大洲都该听到点熟悉的东西」的语言,把自己最薄的地方原样印了出来。更要紧的是下一句:作者原先把这个薄处解释成结构性的——汉语词太短,短词的位置已经占满——然后他自己推翻了这个解释:现代汉语和日语的词大多是双音节,恰好是四字母规则想要的;十个日常词试下来,七个通过了全部规则。是借词的人伸手去够了古典单音节,然后停在了那里。把没打中的靶心原样印出来,比打中更难。
所以现在看,比以后看重要。一门造语一旦有了使用者,拒绝的记录就会被压平成一本风格指南:ruma 会消失,词典上只剩 dom;「这门语言说不出的话」会缩成一页常见问题;四十个悬案会被答完,然后从页面上撤下。到那时留下的是一个构——可能是个好构,甚至是个漂亮的构,但它的美将是沉积,不再是活的。眼下不是那样:七天,二百六十二次提交,一分,零颗星。没有人到场。作者在 README 末尾写的是「跟着提交记录,看一门语言实时长出来」。这句话是有时效的。
amadunia.com ↗On September 2nd, someone signing as Recep Cinet started a language called Amadunia (ama, love, plus dunia, world). It runs on a single principle: take the easiest feature from every language you can find and leave the rest outside — "if a sound or rule is hard for anyone on Earth, it's out." Twenty letters, one sound each, always. Three hundred roots. Twenty-one settled grammar rules, twenty-six lessons, thirty texts. On September 4th he posted it to Hacker News, describing it under the title as a conlang site where every number is derived from the source repository. It got one point and no comments. The repo stands today at 262 commits, zero stars, zero forks. The language is seven days old.
That principle is a cut, and a cut always leaves a remainder: the words the rule killed. Almost every language project treats those as engineering waste and hands you only the surviving lexicon. Amadunia does the opposite — it keeps the dead words, and it books them with the price attached. Hijau, anjing, mvua are out for using letters outside the twenty, and what was lost is green, dog, rain. Fenestra, Fenster, skribi are out for three consonants in a row: window, and to write. Beli is out for sitting one sound from beri, to give, and what was lost is to buy. Luna is out for standing too close to luma, light: the moon. Matar is out because it means "to kill" in Spanish, and what was lost is to marry. The table in the README does not say "beli rejected." It says beli rejected — lost: to buy. The remainder here carries a price tag. The hardest case: ruma, house, had already been used eighty-four times in the material and was executed anyway, replaced by dom, because it stood against luma across nothing but l and r — a contrast the author ranks above how widely a word travels. Every rule in this language sits on top of a word it killed.
The remainder is load-bearing in three separate places. First, every grammar page ends with what that rule rejected. Second, all thirty texts end with what the language could not say. The fifth is a poem, and its column lists three things: stress was undecided when it was written, so the poem has no rhythm at all — read the same line two ways and both are correct Amadunia, and two readers cannot agree on the metre of one line; there is no word for "change," and the poem is about day turning into night and back, so the language cannot name the thing it is describing; and whether a line may break where it likes is still ungranted. Third, forty open questions are gathered on one page and ordered by the pressure the writing actually put on them — a word for "then" leads with six pages demanding it, while two questions have never been reached for at all. Four of the forty were not left open on purpose; they were forms the material already relied on that no rule had ever granted, and the imperative topped that list with three pages that tried and stopped, until it was granted on September 3rd. Which means the direction this language grows in is set by its own remainder rather than by its designer's plan. That is cultivation, not severing: the next round is not chiselled out of the last one but grown from its body. And when stress was finally settled on the 3rd, the poem written during the ruleless period became scannable for the first time — its closing line, Kita ama dunia una, turns out to be the only regular line in the whole poem, four clean trochees with nothing left over. The author's own note: that was luck, not craft, and it could not have been craft, because when the line was written no rule existed that could tell anyone where its beats were.
There is a rarer layer under that. The script that checks the language also generates the list of its own refusals — a page titled "What check.py refuses," 314 guarantees in 143 groups, every line the literal message the checker prints rather than a paraphrase of one, regenerated from the code, and the checker fails if the list has drifted from it. But the page also writes down, plainly, the one guarantee it cannot check: the checker cannot verify how many lines long it is, because the test harness does its mutation testing by rewriting the checker, which makes it three lines longer. In its own words, a number that describes a file cannot be verified from inside that file when the tool verifying it edits the file. That sentence is left standing on the page rather than quietly routed around. The same page records that the line count read "eleven hundred" until September 6th, when it was found to be long stale — on the page whose entire reason for existing is that the Python is too long for anyone to read.
To be clear about what is not new: building a global auxiliary language is not new at all. Esperanto has been here since 1887, with its congresses, its Wikipedia, its century and a half of sediment — that is a construct, and its beauty is the sediment a closed chisel-construct cycle left behind. Pandunia and Globasa have been at the same brief for years. Amadunia's goal is old. What is new is the object it publishes: a language whose principal output turns out to be the ledger of what it refused. There is no name for that yet — it is not lexicography, not a grammar, not a design document. And the ledger books its own misses too. The etymology audit puts European roots at 34% of the dictionary against Esperanto's roughly 95%, and by reach the largest family is Austronesian at 38.3%. Then come these lines: Sino-Tibetan, 4.0%. Japonic, 2.7%. Koreanic, 0.0%. A language whose stated promise is that every continent should hear something familiar has printed its own thinnest spot at full size. Better still is the sentence after it. The author had explained the thin spot as structural — Chinese words are short and the short space is full — and then overturned his own explanation: modern Chinese and Japanese words are mostly two syllables, which is exactly what the four-letter rule wants, and seven of ten ordinary words tested passed every rule. The borrowing reached for the classical monosyllables and stopped there. Printing the target you missed, at full size, is harder than hitting it.
Which is why seeing it now matters more than seeing it later. The moment a constructed language acquires speakers, the record of refusals gets flattened into a style guide: ruma disappears and the dictionary simply says dom; "what the language could not say" shrinks to an FAQ; the forty open questions get answered and taken down. What is left then is a construct — possibly a good one, possibly a beautiful one, but its beauty will be sediment rather than something still alive. Right now it is not that. Seven days, 262 commits, one point, zero stars. Nobody has arrived. The last line of the README invites you to follow the commits and watch a language grow in real time. That invitation has an expiry date.
amadunia.com ↗