# Compatibilitat cap endavant

La compatibilitat cap endavant o compatibilitat ascendent és una característica de disseny que permet que un sistema accepti l'entrada destinada a una versió posterior de si mateix. El concepte es pot aplicar a sistemes sencers, interfícies elèctriques, senyals de telecomunicacions, protocols de comunicació de dades, formats de fitxers i llenguatges de programació. Un estàndard admet la compatibilitat cap endavant si un producte que compleix amb versions anteriors pot processar adequadament l'entrada dissenyada per a versions posteriors de l'estàndard, ignorant les peces noves que no entén.
L'objectiu de la tecnologia de compatibilitat cap endavant és que els dispositius antics reconeguin quan s'han generat dades per a dispositius nous.
La compatibilitat cap endavant per al sistema anterior normalment significa retrocompatibilitat per al nou sistema, és a dir, la capacitat de processar dades del sistema antic; el nou sistema acostuma a tenir una compatibilitat total amb l'antic, ja que es poden processar i generar dades en el format del sistema anterior.
La compatibilitat cap endavant no és el mateix que l'extensibilitat. Un disseny compatible cap endavant pot processar al menys algunes de les dades d'una futura versió de si mateix. Un disseny extensible en canvi facilita l'actualització. Un exemple d'ambdues idees de disseny es pot trobar als navegadors web. En qualsevol moment, un navegador actual és compatible cap endavant si accepta adequadament una versió més nova d'HTML. Mentre que la facilitat amb què es pot actualitzar el codi del navegador per processar l'HTML més recent determina la seva extensió.

## Exemples
### Estàndards de telecomunicació

La introducció de la transmissió FM estèreo, o televisió en color, va permetre la compatibilitat cap endavant, ja que els receptors de ràdio FM monofònics i els televisors en blanc i negre encara podien rebre un senyal d'un transmissor nou. També permetia la retrocompatibilitat, ja que els nous receptors podien rebre senyals monofònics o en blanc i negre generats per transmissors antics.

### Videojocs

* La Game Boy és capaç de reproduir determinats jocs llançats per la Game Boy Color. Aquests jocs utilitzen el mateix disseny de cartutx que els jocs de la Game Boy original, tot i que el plàstic utilitzat normalment és negre en lloc de gris i inclou el logotip de GBC a l'etiqueta i l'embalatge; Nintendo es refereix oficialment a aquests títols com a "Mode Dual".
* La PlayStation original és compatible amb el comandament DualShock 2. De la mateixa manera, la PlayStation 3 es pot jugar amb un comandament DualShock 4.
* La Xbox One pot utilitzar el controlador de la Xbox Series X i la Xbox Series S i, en canvi, un comandament de Xbox One pot funcionar a la Xbox Series X i la sèrie S.

### HTML

L'HTML està dissenyat per tractar totes les etiquetes de la mateixa manera (com a elements en línia inerts i sense estil) tret que se'n substitueixi l'aparença o el comportament; ja sigui per la configuració predeterminada del navegador o per scripts o estils inclosos a la pàgina. Això fa que la majoria de les funcions noves es degradin adequadament als navegadors antics. Un dels casos en què això no va funcionar com es pretenia va ser amb els blocs de guió i estil, el contingut dels quals ha de ser interpretat pel navegador en lloc de formar part de la pàgina. Aquests casos es van tractar tancant el contingut dins dels blocs de comentaris.
Com que no hi ha cap actualització obligatòria d'ordinadors o navegadors web, molts desenvolupadors web utilitzen la tolerància a fallades o una millora progressiva, intentant crear nous llocs web que siguin utilitzables per persones que hagin desactivat Javascript o que tinguin ordinadors antics, navegadors web antics o en una connexió lenta, així i tot aprofitant-se d'un maquinari més ràpid i un suport millor de JavaScript en navegadors web més moderns, quan estiguin disponibles.

### Mitjans òptics

Cadascun dels tres formats de suports òptics de 12 cm més comuns (CD, DVD i Blu-ray) va ser publicat per primera vegada en format només de lectura anys abans que els formularis escrivibles estiguessin disponibles. Dins de cada format, hi ha compatibilitat cap endavant i retrocompatibilitat, ja que la majoria de les unitats de només lectura més antigues i els reproductors poden llegir (però no escriure) suports escrivibles en el mateix format, mentre que les unitats de lectura/escriptura poden llegir (però no escriure) els arxius antics de només lectura. No hi ha compatibilitat cap endavant entre formats; un reproductor de CD, per exemple, no pot llegir un DVD (un format més nou), ni tan sols les pistes d'àudio. Pot haver-hi retrocompatibilitat per a una millor comercialització (com ara un reproductor de DVD que reprodueix un CD d'àudio), però no és intrínsec als estàndards.

## Sense compatibilitat ascendent (NUC)

Alguns productes no estan dissenyats per ser compatibles cap endavant, cosa que s'ha denominat NUC (de l'anglès "not upwardly compatible"). En alguns casos, això pot ser intencionat pels dissenyadors com una forma de dependència del proveïdor o de regressió de programari.
L'obsolescència programada és un tipus de compatibilitat ascendent, però en lloc d'adoptar una política de retrocompatibilitat, les empreses adopten una política comercial de retroincompatibilitat perquè les aplicacions més noves requereixin dispositius més nous.

## Referències

* 1 2 Tulach, Jaroslav. Practical API Design: Confessions of a Java Framework Architect. Apress, 2008, p. 233. ISBN 978-1-4302-0973-7.
* ↑ «| Nintendo - Customer Service | Game Boy - Compatibility Chart». [Consulta: 13 desembre 2021].
* ↑ «Will the ps2 controller work on a ps1? - Retrogaming Roundtable». [Consulta: 13 desembre 2021].
* ↑ «PlayStation 4 Controller Now Works Wirelessly With PlayStation 3» (en anglès americà). [Consulta: 13 desembre 2021].
* ↑ «Can you use an Xbox Series X|S controller on Xbox One?», 22-11-2021. [Consulta: 13 desembre 2021].
* ↑ «Really Undoing html.css – Eric’s Archived Thoughts» (en anglès americà). [Consulta: 13 desembre 2021].
* ↑ HTML Tag at w3schools.com: 'You can also use the comment tag to "hide" scripts from browsers without support for scripts [...]'.
* ↑ "Graceful degradation versus progressive enhancement".
* ↑ «Blu-ray Disc Format», 18-02-2009. Arxivat de l'original el 2009-02-18. [Consulta: 13 desembre 2021].

## Enllaços externs

* Rule of Extensibility: Design for the future, because it will be here sooner than you think, in The Art of Unix Programming