Cosa significa compatibilità all’indietro nel software?

In generale, la retrocompatibilità significa che la versione più recente (di un software o di uno strumento) dovrebbe essere in grado di gestire gli oggetti (dati, file ecc.) prodotti nella versione più vecchia.

Per esempio, se hai scritto la tua tesi in Microsoft Word 95, potresti volerla riaprire nel 2010 con Word 2010 - quindi Word 2010 ha un modulo di retrocompatibilità in esso che apre il vecchio formato di MS Word (e lo converte silenziosamente nelle nuove strutture dati di MS Word 2010).

Un caso che merita una menzione speciale è la retrocompatibilità del sistema operativo per i programmi. Questo è critico, perché nel corso degli anni, i clienti finali e le aziende hanno acquisito enormi quantità di software (e licenze software) di cui hanno bisogno per il loro funzionamento, e se il vostro sistema operativo più recente non supporta tali software, allora semplicemente non saranno in grado di passare al vostro sistema operativo più recente; questo vi costringe quindi a continuare a supportare il vecchio sistema operativo, costandovi un sacco di risorse senza portare alcun reddito particolare. Questo è il motivo per cui è stato un grosso problema quando MS ha annunciato che non avrebbe più supportato alcuna versione di Windows NT/XP un paio di anni fa - perché questo ha costretto tutti quelli che ancora li usavano a migrare a una versione più recente.

A volte, i cambiamenti fatti in una versione più recente sono così fondamentali che la retrocompatibilità non è più possibile.

Per esempio, non è più possibile lanciare applicazioni a 16 bit in Windows 10 (senza l'aggiunta di un livello di astrazione) - Windows 10 non è quindi compatibile con applicazioni MS DOS o Windows 3.x.

Ulteriore intuizione:

Il bisogno di retrocompatibilità ha una conseguenza piuttosto interessante - serve come un freno a mano naturale per le società consolidate e permette alle start-up di perseguire aggressivamente nuove opportunità. Una nuova start-up non ha bisogno di preoccuparsi se il suo nuovo software o applicazione sarà compatibile con quello vecchio - non ne ha uno vecchio. Possono "partire da zero" e produrre rapidamente la loro fantastica idea. Se una grande azienda come Google o Microsoft volesse fare lo stesso, i clienti esistenti si lamenterebbero immediatamente perché sono stati tagliati fuori, o perché questo nuovo software non funziona con i loro dati esistenti.