La compatibilidad hacia adelante o compatibilidad hacia arriba 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 compatibilidad futura si un producto que cumple con versiones anteriores puede procesar " elegantemente " la entrada diseñada para versiones posteriores del estándar, ignorando 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 con versiones anteriores del sistema anterior suele significar compatibilidad con versiones anteriores del sistema nuevo, es decir, la capacidad de procesar datos del sistema anterior; El nuevo sistema suele tener total compatibilidad con el anterior, al poder procesar y generar datos en el formato del sistema anterior.
La compatibilidad hacia adelante 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. Se puede encontrar un ejemplo de ambas ideas de diseño en los navegadores web. En cualquier momento, un navegador actual es compatible con versiones posteriores si acepta correctamente 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 estéreo FM , o televisión en color, permitió la compatibilidad futura, 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 necesaria ]
HTML está diseñado para tratar todas las etiquetas de la misma manera (como elementos en línea inertes y sin estilo ) a menos que se anule su apariencia o comportamiento; 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 funciones nuevas se degraden con gracia en los navegadores más antiguos. Un caso en el que esto no funcionó como se esperaba fue el de los bloques de estilo y script, cuyo contenido debe ser interpretado por el navegador en lugar de ser parte de la página. Estos casos se resolvían encerrando el contenido dentro de bloques de comentarios. [9]
Debido a que no existe una actualización obligatoria de las computadoras o los navegadores web, muchos desarrolladores web utilizan una degradación elegante o un enfoque de mejora progresiva , intentando crear sitios web recién creados que sean utilizables por personas que han desactivado Javascript o que tienen computadoras o navegadores web antiguos. o con una conexión lenta, pero aun así aprovechando el hardware más rápido y una mejor compatibilidad con JavaScript en los navegadores web más modernos, cuando estén disponibles. [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 sólo lectura años antes de que estuvieran disponibles los formatos de escritura. 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) archivos de lectura antiguos. -solo medios. 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 con versiones anteriores para mejorar la 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 posteriores). En algunos casos, esto podría ser intencionado 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 considera cambiar el diseño de su cubículo. Un diseñador promueve cambiar la huella de 4 pies cuadrados a 1,2 metros cuadrados. Inmediatamente, el gerente de ventas llama a "NUC" y se comprende el problema: si la huella cambia y los clientes existentes están considerando comprar más al productor, tendrán que instalar una unidad de diferente tamaño en una oficina diseñada para el cubículo de 4 pies cuadrados.
La obsolescencia programada es un tipo de compatibilidad hacia arriba, pero en lugar de adoptar una política de compatibilidad hacia atrás, las empresas adoptan una política comercial de incompatibilidad hacia atrás, de modo que las aplicaciones más nuevas requieren dispositivos más nuevos.