Novecento parole
Nell'ottantasei l'aeronautica aveva già chiuso il problema della frase ambigua. Oggi quel manuale torna di moda, e stavolta a non capire siamo noi.
Qualche settimana fa è finita in cima a Hacker News una skill che serve a una cosa sola: costringere il modello a scrivere la documentazione in ASD-STE100. Sotto, la solita litigata: progetto vero o una riga di prompt travestita da repository? Io però ero rimasto fermo al nome. ASD-STE100 è il Simplified Technical English: cinquantatré regole e un dizionario di novecento parole, ognuna con un solo significato ammesso. Lo hanno scritto i costruttori aeronautici europei nell'ottantasei, per una ragione molto concreta: quei manuali li legge un manutentore con le mani dentro un motore, e lì una frase che si può leggere in due modi ammazza qualcuno. Massimo venti parole a frase, voce attiva, un'istruzione alla volta. Nel readme della skill c'è la riga che regge tutto: «"Clearly" is an opinion. "No sentence over 20 words" is a spec». "Scrivi chiaro" è un'opinione, "venti parole" è una specifica, e le specifiche l'agente le rispetta.
Questo film però l'avevo già visto. Nel novantasette Scott Bradner scrive tre paginette, la RFC 2119, e ci mette dentro dieci parole in maiuscolo: MUST, SHOULD, MAY e le rispettive negazioni. Da lì in avanti ogni specifica di internet si scrive con quel vocabolario lì. Vent'anni dopo tocca pure pubblicare una postilla per chiarire che il significato vale solo in maiuscolo, perché qualcuno le scriveva in minuscolo e venivano fuori equivoci. Su quelle dieci parole ci gira la posta, il web, il DNS. E quando Bradner scriveva, in aeronautica quel problema l'avevano chiuso da undici anni.
Quindi il formalismo lo avevamo già, e ce lo siamo perso per strada. Il motivo lo sappiamo tutti. Quello che pagava era il documentone d'architettura: rimandava all'ADR, citava il pattern, dava per scontato il glossario. Nessuno se lo leggeva per intero, ma in riunione faceva la sua bella figura. E pagava il collega che ti tirava fuori la funzione più criptica possibile, perché la leggibilità era roba per quelli che non ce la facevano a starti dietro. Si scriveva complicato per due platee: il management, che dalle pagine misurava la serietà del lavoro, e noi stessi.
Ed è qui il ribaltamento, che è pure comico. In questi due anni siamo diventati bravi noi a parlare come una macchina: obiettivi, requisiti, decisioni tirate fuori una per una, ambiguità sciolte prima di partire. Nel frattempo la macchina ha imparato a parlare come un ingegnere del novantacinque. Ti sforna il piano lungo, elegante, pieno di subordinate, con il termine esatto che non usa nessuno, e tu ne capisci un quinto e dici va bene. La colpa è nostra: l'abbiamo addestrata su di noi, e la media di tutti si porta dentro pure quelli che scrivevano per far vedere quanto erano bravi.
La liturgia me la ricordo bene, perché era la nostra. Su Stack Overflow chi faceva la domanda mal posta se la vedeva chiudere come duplicato, con l'invito a leggersi il manuale e il voto negativo di chi passava di lì. Il patto tacito era che chi scriveva incomprensibile fosse bravo, e chi non capiva se lo meritasse. Adesso la risposta illeggibile arriva da un'altra parte, e quello che non ha capito sono io. Il voto negativo alla macchina non glielo puoi dare. Insultarla sì, e succede, ma il verdetto è sempre quello: dovevi scrivere un prompt migliore. È il "leggi il manuale" di oggi, con la stessa faccia di allora.
Il manuale dell'ottantasei stava in piedi su novecento parole, un significato a testa, perché uno con le mani sporche di grasso capisse al primo colpo e non ci lasciasse la pelle. Siamo tornati a scrivere così, e stavolta a pretenderlo è un manutentore diverso. Quello con le mani sporche di grasso, quello che non capisce, siamo noi.