title: Legacy code
text: # Legacy code
  
  Il legacy code è il codice sorgente obsoleto non più supportato o in produzione, può essere correlato ad un sistema operativo o ad un altro sistema di calcolo. L'espressione indica anche codice inserito nel software moderno con lo scopo di preservare una funzionalità supportata in precedenza, per esempio per il supporto dell'interfaccia seriale anche se i computer moderni usano solamente USB.
  
  In pratica, la maggior parte di codice sorgente ha qualche relazione con la piattaforma per cui è sviluppata; è difficile scrivere un programma di notevoli dimensioni completamente slegato dal suo futuro ambiente di esecuzione. Quando il produttore aggiorna o sostituisce la piattaforma, il codice non sarà più utilizzabile senza cambiamenti e diventerà legacy code. Gran parte del lavoro dei programmatori consiste nel modificare il codice per prevenire questo inconveniente.
  
  Mentre il termine di norma si riferisce al codice sorgente, in alcuni casi può essere usato per indicare codice eseguibile non più in grado di funzionare su sistemi moderni oppure richiede uno speciale ambiente compatibile. Un esempio potrebbe essere una classica applicazione Macintosh che non funzionerebbe su Mac OS X ma può essere fatta funzionare all'interno dell'ambiente Classic, o un'applicazione Win16 che funziona su Windows XP usando la funzionalità Virtual Old Windows.
  
  