L’eterno ritorno del quasi uguale
L’Auryn della Storia infinita ricorda l’urobòro, un simbolo egizio adottato dagli alchimisti per rappresentare il tempo ciclico e l’eterno ritorno.
Nell’immaginario collettivo, l’informatico incarna l’essere razionale per eccellenza: il suo mondo: la sua esistenza è scandita dalla razionalità cartesiana, dal rigore matematico e dalla dicotomia della logica binaria. Ma inoltrandosi in questo mondo si incontra spesso la mancanza di ponderazione e forme di pensiero rigido e categorico. Atteggiamenti in fin dei conti umani-troppo-umani, per quanto inaspettati per chi si confronta quotidianamente con la macchina, dove il flusso dell’informazione segue regole deterministiche e non lascia spazio ai turbamenti dell’animo umano. Dovrebbe informare la mente all’obiettività: nel proprio operato lo sviluppatore è costretto a raggiungere una chiarezza concettuale superiore dell’oggetto del software (i requisiti potranno anche essere ambigui, la loro implementazione no.)
Una delle più comuni manifestazioni dello scarso discernimento, è nell’adozione frenetica della novità hype del momento, o nel desiderio insaziabile di riscrivere una codebase in un nuovo linguaggio di programmazione, spesso a fronte di benefici trascurabili. Ma queste rincorse, animate da un fuoco effimero, si scontrano con la cruda realtà: come nel paradosso di paradosso di Achille e la Tartaruga, la nuova versione resta eternamente incompiuta, incapace di sostituire ciò che già esiste e che, nonostante tutto, continua ad evolvere e a resistere.
Tuttavia l’industria del software mantiene ad oggi il privilegio di essere una terra dell’abbondanza, immune alle dure leggi di selezione naturale che falciano spietatamente in altri settori.
Questo nuovismo si traduce in un eterno ritorno del (quasi) eguale, dove tecnologie cambiano pelle senza mai innovarsi realmente, come la televisione 3D o l’alternanza fra schermi lucici e satinati o il dark mode delle iterfacce, preceduto in ordine dai temi chiari dei sistemi Apple, dalla nostalgia retrocomputing dei primi anni ‘2000, dal minimalismo bianco di Windows 3.11 e dagli schermi ai fosfori verdi, “dark” per necessità tecnica. Spesso si tratta solo di inventare un nuovo nome a una tecnologia obsoleta sperando di darle nuova vita, come se fosse l’Imperatrice del Regno di Fantàsia.
Un altro esempio è XML e del suo tooling esaustivo e consistente, rimpiazzato da sintassi isomorfiche, quali Json, lasciando alla comunità il compito di reinventare il tooling necessario. E questo approccio bottom-up si nota spesso nelle soluzioni frettolose (come l’inestetica dichiarazione dello schema attraverso la chiave custom “$schema"). Stesso destino per i WebService SOA, anch’essi dotati di tutto il tooling necessario, e subito sacrificati alla semplicità di REST, salvo poi scoprire che quella semplicità era illusoria e che bisognava ricostruire tutte le funzionalità che SOA già offriva out-of-the-box.
Districarsi in questo mondo frenetico e mutevole è faticoso, ed è particolarmente evidente nello sviluppo del frontend, dove la proliferazione di framework, librerie –spesso adottati senza consapevolezza, ma puramente seguendo un culto del cargo– ha reso l’ecosistema una giungla dove orientarsi è ormai una sfida epica: il syllabus delle conoscenze necessarie a produrre un applicazione web è ormai un carosello infinito. Qualcuno dice che verrà rimpiazzato da WebAssemblyMa non avevamo già le Applet Java negli anni ‘90 che seguivano questo approccio? e questo vanificherebbe tutta l’esperienza maturata nell’ecosistema JavaScript negli ultimi anni.
Forse arriveranno tempi di magra e anche l’industria del computing sarà costretta a tornare alla parsimonia. Ma in ogni caso, un bagno di realismo non farebbe male: distinguere la tecnica dalla moda, il valore dalla vanità. Il mondo ha problemi che richiedono soluzioni audaci, non certo dell’ennesima startup per ordinare pizze online.