L’eterno ritorno: perché non potremo scappare dai loop (nemmeno se vorremmo)
Il destino ha un modo tutto suo di farci girare in tondo, e stavolta non parlo di quando rimani bloccato in un debug loop alle tre di notte dopo aver dimenticato un punto e virgola. Recentemente, un paper che ha fatto sussultare la community su Hacker News ha sollevato un tema che potremmo definamente definire ‘filosofico-tecnico’: l’inevitabile ritorno dei loop. Se pensavate che dopo l’era dell’imperativo e del funzionale fossimo finalmente riusciti a liberarci da certe strutture rigide, preparate il caffè (rigorosamente nero, come il nostro terminale), perché la tecnologia sta tornando a chiudersi in cerchio. L’articolo di Rico Scarselli ci mette davanti a una realtà scomoda: l’avvento di nuovi paradigmi di sviluppo e l’esplosione dell’automazione stanno portando alla ribalta l’uso di «loops» e «harnesses». In parole povere, non stiamo solo scrivendo codice che esegue istruzioni, ma stiamo costruendo sistemi che creano altri sistemi, che a loro volta si auto-alimentano. È quel tipo di automazione che, se non gestita con un occhio critico, rischia di trasformarsi in una scatola nera dove l’input entra, gira un po’, e l’output è qualcosa di magico ma totalmente incomprensibile. Per noi che amiamo smontare i giocattoli per vedere come sono fatti, questo scenario è un’arma a doppio taglio. Da un lato, l’idea di avere strutture che gestiscono la complessità in modo autonomo è estremamente stimolante. Da un lato, c’è il rischio concreto che queste ‘armature’ diventino dei veri e propri recinti invisibili. Vedete, il problema non è la tecnologia in sé, ma la tendenza del mercato a trasformare queste strutture in sistemi chiusi, dove non hai più il controllo del flusso perché ‘il loop decide così’. Non è che stia arrivando una legge europea che ci vieta di usare i cicli ‘for’, sia chiaro. La questione è più sottile e riguarda la nostra autonomia intellettuale. Quando i framework iniziano a gestire i cicli di feedback in modo totalmente astratto, perdiamo la capacità di capire dove finisce il nostro codice e dove inizia la ‘magia’ della macchina. E noi sappiamo bene che la magia, nel software, è solo un altro modo per dire ‘codice che non puoi debuggare’. Quindi, tra un progetto su Raspberry Pi e un commit su GitHub, teniamoci pronti. Il futuro non è una linea retta che punta verso l’infinito, ma un loop sempre più complesso. La sfida sarà assicurarci di avere sempre il comando di ‘break’ a portata di mano, prima che l’intero sistema decida che la nostra opinione non è più necessaria. Source: The Coming Loop