← Indice del sito Metnos › Code

Code

una nota dell'autore
Il codice è online.github.com/brunialti/metnos — sottoinsieme run-essential dell'istanza in esercizio, con installer e architettura. AGPL-3.0.
Se sei arrivato fin qui, sei interessato al codice. Anche io avrei fatto così. Ma questa volta il codice è la parte meno preziosa del progetto.

Where is the beef (code)?

Domanda giusta, dopo tutta questa filosofia. Il codice viene dopo i documenti, ed è per scelta. Ogni documento di questo sito sta a monte del codice: la regola interna è che un componente non si implementa prima che il suo HTML esista e sia approvato. Quando la definizione è abbastanza matura da rendere la costruzione un esercizio di fedeltà più che di traduzione, il codice segue — e somiglia ai documenti, non viceversa.

C'è anche un motivo più forte per fermarsi qui. Le pagine di microprogettazione e l'architettura codificano decisioni; i dialoghi mostrano come quelle decisioni sono state guadagnate. Se leggi prima il design, ricevi le conclusioni senza le obiezioni, i componenti senza le alternative scartate, i nomi senza la fatica di trovarli. Se leggi prima un dialogo, arrivi alle stesse decisioni con i dubbi ancora attaccati — che è quello che, più avanti, ti permetterà di distinguere se una sorpresa del sistema è un bug o una conseguenza da accettare.

Se stai per tuffarti nell'architettura o nella microprogettazione, leggi prima almeno un dialogo. Il resto della documentazione ti parlerà una lingua più ricca.

E adesso, il codice

Metnos è implementato, e lo uso ogni giorno. Ora il codice è pubblico — non un dump, ma il sottoinsieme run-essential dell'istanza in esercizio, con un installer che non si limita a far partire un server: replica un ambiente di lavoro completo da un checkout pulito. Una sola sorgente, quella viva; il repository ne è il riflesso curato, deterministico.

Resta vero tutto ciò che hai letto sopra. I documenti vengono prima, e valgono più del codice: per ogni riga ce ne sono quattro o cinque di documentazione, più un livello non pubblicato di microdecisioni. Ma adesso, se vuoi, puoi anche vedere come quelle decisioni si sono fatte materia — e constatare che il codice somiglia ai documenti, non viceversa.

Cosa ci troverai, in breve: un assistente che sintetizza i propri strumenti da un vocabolario chiuso e firmato, invece di importarli e fidarsi; un planner locale e deterministico — stessa richiesta, stesso piano; executor vettoriali per costruzione, lista-dentro / lista-fuori; e un'ostinata onestà: niente fallimenti silenziosi, e un undo che è davvero un undo. Gira sul tuo hardware; il modello di frontiera è un ripiego facoltativo, non il motore.

A partire dal corpus documentale era già possibile reimplementare Metnos — probabilmente meglio di me, in compagnia di un AI coder, che durante questo progetto mi è sembrato moltiplicato dalle tecniche adottate, alcune frutto di scoperte sorprendenti. Adesso hai anche l'originale a cui confrontarti.

Sono solo, o meglio: c'è sempre l'Altro che amplifica le mie capacità. È una vetrina, non un prodotto levigato — costruita per una persona, su una macchina, e aperta perché altri possano leggerla, eseguirla, costruirci sopra. Porta un po' di pazienza; e, se ti va, un'issue.