Forward compatibility

From Wiki @ Karl Jones dot com
Jump to: navigation, search

Forward compatibility is the ability of a design to gracefully accept input intended for later versions of itself.

Description

The concept can be applied to entire systems, electrical interfaces, telecommunication signals, data communication protocols, [[File format|file formats], and computer programming languages.

A standard supports forward compatibility if older product versions can receive, read, view, play or execute the new standard gracefully, perhaps without supporting all new features.

The applicability of a forward compatible system with new versions requires not only the respecting of the older version by the designers of the newer version but additionally some agreement on future design features with the design freeze of current versions. The introduction of a forward compatible technology implies that old devices partly can understand data generated by new devices.

Graceful exit

A forward compatible system is expected to "gracefully" handle input which is intended for a newer version, by ignoring the unknowns and selecting the known subset of the data that the system is capable of handling.

Forward compatibility versus backward compatibility

Forward compatibility is harder to achieve than backward compatibility because a system needs to cope gracefully with an unknown future data format or requests for unknown future features. Backward compatibility does not have this issue because it accepts a known data format.

Forward compatibility versus extensibility

Although the concepts of forward compatibility and extensibility are similar, they are not the same.

  • A forward compatible design can accept data from a future version of itself and pick out the "known" part of the data.
    • Example: a text-only word processor ignoring picture data from a future version.
  • An extensible design is one that can be upgraded to fully handle the new data in the newer input format.
    • Example: a text-only word processor that can be upgraded to handle picture data.
    • See Plug-in (computing).

See also

External links