La compatibilidad hacia adelante o compatibilidad ascendente es una característica de diseño que permite a un sistema aceptar entradas destinadas a una versión posterior de sí mismo. El concepto se puede aplicar a sistemas completos, interfaces eléctricas , señales de telecomunicaciones , protocolos de comunicación de datos , formatos de archivos y lenguajes de programación . Un estándar admite la compatibilidad hacia adelante si un producto que cumple con versiones anteriores puede procesar " con elegancia " las entradas diseñadas para versiones posteriores del estándar, ignorando las partes nuevas que no comprende.
El objetivo de la tecnología compatible con versiones posteriores es que los dispositivos antiguos reconozcan cuándo se han generado datos para dispositivos nuevos. [1]
La compatibilidad hacia adelante del sistema antiguo generalmente significa compatibilidad hacia atrás del nuevo sistema, es decir, la capacidad de procesar datos del sistema antiguo; el nuevo sistema generalmente tiene compatibilidad total con el antiguo, al poder procesar y generar datos en el formato del sistema antiguo.
La compatibilidad con versiones posteriores no es lo mismo que la extensibilidad . Un diseño compatible con versiones posteriores puede procesar al menos algunos de los datos de una versión futura de sí mismo. Un diseño extensible facilita la actualización. Un ejemplo de ambas ideas de diseño se puede encontrar en los navegadores web. En cualquier momento, un navegador actual es compatible con versiones posteriores si acepta sin problemas una versión más nueva de HTML , mientras que la facilidad con la que se puede actualizar el código del navegador para procesar el HTML más nuevo determina su extensibilidad.
La introducción de la transmisión FM estéreo , o televisión en color, permitió la compatibilidad con versiones anteriores, ya que los receptores de radio FM monofónicos y los televisores en blanco y negro aún podían recibir una señal de un nuevo transmisor. [1] También permitió la compatibilidad con versiones anteriores, ya que los nuevos receptores podían recibir señales monofónicas o en blanco y negro generadas por transmisores antiguos. [ cita requerida ]
HTML está diseñado para tratar todas las etiquetas de la misma manera (como elementos inertes, sin estilo ) a menos que su apariencia o comportamiento se anule; ya sea por la configuración predeterminada del navegador o por scripts o estilos incluidos en la página. [8] Esto hace que la mayoría de las nuevas características se degraden elegantemente en navegadores más antiguos. Un caso en el que esto no funcionó como se esperaba fueron los bloques de scripts y estilos, cuyo contenido está destinado a ser interpretado por el navegador en lugar de ser parte de la página. Estos casos se solucionaron encerrando el contenido dentro de bloques de comentarios. [9]
Como no hay una actualización obligatoria de las computadoras o los navegadores web, muchos desarrolladores web utilizan un enfoque de degradación elegante o mejora progresiva , intentando hacer sitios web recién creados que sean utilizables por personas que han desactivado Javascript o que tienen computadoras viejas o navegadores web viejos o una conexión lenta, pero aún así aprovechan el hardware más rápido y un mejor soporte de JavaScript en navegadores web más modernos, cuando esté disponible. [10]
Cada uno de los tres formatos de medios ópticos de 12 cm más comunes ( CD , DVD y Blu-ray ) se lanzó por primera vez en formato de solo lectura años antes de que estuvieran disponibles los formatos grabables. Dentro de cada formato, existe compatibilidad tanto hacia adelante como hacia atrás, en el sentido de que la mayoría de las unidades y reproductores de solo lectura más antiguos pueden leer (pero no escribir) medios grabables en el mismo formato, mientras que las unidades de lectura/escritura pueden leer (pero no escribir) medios antiguos de solo lectura. No existe compatibilidad hacia adelante entre formatos; un reproductor de CD, por ejemplo, no puede leer un DVD (un formato más nuevo), ni siquiera las pistas de audio. Puede haber compatibilidad hacia atrás para una mejor comercialización (como un reproductor de DVD que reproduce un CD de audio), pero no es intrínseca a los estándares. [11]
Algunos productos no están diseñados para ser compatibles con versiones posteriores, lo que se conoce como NUC (no compatible con versiones anteriores). En algunos casos, esto puede ser intencional por parte de los diseñadores como una forma de dependencia del proveedor o regresión del software .
Por ejemplo, un fabricante de cubículos está considerando cambiar el diseño de sus cubículos. Un diseñador recomienda cambiar el espacio de 4 pies cuadrados (1,22 m) a 1,2 metros cuadrados. Inmediatamente, el gerente de ventas llama a "NUC" y se comprende el problema: si el espacio cambia y los clientes existentes están considerando comprar más al fabricante, tendrán que colocar una unidad de tamaño diferente en una oficina diseñada para el cubículo de 4 pies cuadrados.
La obsolescencia planificada es un tipo de compatibilidad ascendente, pero en lugar de adoptar una política de compatibilidad con versiones anteriores, las empresas adoptan una política comercial de incompatibilidad con versiones anteriores, de modo que las aplicaciones más nuevas requieren dispositivos más nuevos.