Dagli anni ’70 ad oggi, ciò che è stato è ancora attuale.
Sull’utilità di suddividere un sistema in parti più piccole, il classico divide et impera, si sono spesi fiumi di inchiostro. Su quali criteri effettivamente utilizzare per rendere davvero efficace una suddivisione, si trova ben poco materiale.
Mi sono quindi stupito di trovare espressa in forma semplice, chiara e ben argomentata quali criteri usare per una modularizzazione efficace e soprattutto quali criteri invece non usare, perché poco efficaci.
Ciò che più mi ha stupito però è la data nella quale questo articolo è stato scritto: il 1971.
Giusto per contestualizzare, nel 1971 non era stato ancora inventato il linguaggio C, che sarà sviluppato da Dennis Ritchie l’anno seguente. E nel 1972 nascerà anche la prima versione ufficiale di Smalltalk. Bjarne Stroustrup inizierà a lavorare al C++ nel 1979 e James Gosling inizierà a lavorare a Java nel 1991, quasi venti anni dopo la stesura di questo articolo. Il termine microservice verrà coniato nel 2011, ben quaranta anni dopo ed oggi, Aprile 2020, sono quasi passati cinquant’anni da allora.
Ma cosa ci potrà essere di interessante in un polveroso articolo di quasi mezzo secolo fa in un ambito quale quello informatico dove le innovazioni si sviluppano nell’arco temporale di mesi?
Beh, basta vedere ad esempio il dibattito attuale sui criteri per spezzare un monolite in microservizi e sugli errori che si possono commettere. I criteri per decomporre un sistema in moduli sono un tema di discussione quanto mai attuale.
Ma veniamo all’articolo di Parnas.