Quando apporto modifiche a sistemi di grandi dimensioni, spesso incontro il problema che alcune funzionalità necessitano per ottenere alcuni dati da un altro pezzo, ma si trovano in parti diverse di un albero delle chiamate profondo e ramificato, che può fluire attraverso listener di eventi, chiamate differite, ecc. In questo modo un semplice cambiamento può diventare rapidamente un fumetto.
Una citazione correlata dal post del blog di Yossi Kreinin all'indirizzo http://www.yosefk.com/blog/i-want-a-struct-linker.html :
Hai una sorta di struttura di dati che passi molto in giro. Presto, la cosa più preziosa della struttura non sono i dati che conserva, ma il fatto che siano disponibili fino in fondo attraverso un flusso peloso di controllo.
Le variabili globali sono un modo classico per far "gridare" il codice a codice distante, ma sono noti per essere problematici. Le variabili con ambito dinamico sono un modo più limitato, ma sono anche problematiche.
Esistono ricerche sul linguaggio di programmazione volte a risolvere questo problema? Possiamo semplificare l'aggiunta di flussi di dati imprevisti a una base di codice di grandi dimensioni, pur mantenendo controlli statici, test di unità semplici e altri vantaggi?