Backward compatibility

Backward compatibility is a property of a system, product, or technology that allows for interoperability with an older legacy system, or with input designed for such a system, especially in telecommunications and computing. Backward compatibility is sometimes abbreviated to BC, or called downward compatibility.[1] Modifying a system in a way that does not allow backward compatibility is sometimes called "breaking" backward compatibility.[2] A complementary concept is forward compatibility, which is a design philosophy, usually based on open standards, that strives for methods that will continue to work with newer and future products. Design that is forward-compatible usually has a roadmap for compatibility with future standards and products.[3]

Benefits and cost

The associated benefits of backward compatibility are: the appeal to an existing user base through an inexpensive upgrade path; and the network effect, which is particularly important, because it increases the value of goods and services proportionally to the size of the user base. The associated costs of backward compatibility are: a higher bill of materials if hardware is required to support the legacy systems; increased complexity of the product which may lead to longer time to market, technological hindrances, and slowing innovation; and increased expectations from the users in term of compatibility.[2]

Hardware

A simple example of both backward and forward compatibility is the introduction FM radio in stereo. FM radio was initially mono, having only one audio channel represented by one signal. With the introduction of two-channel stereo FM radio, a large number of listeners had only mono FM receivers. Forward compatibility for mono receivers with stereo signals was achieved through sending the sum of both left and right audio channels in one signal, and the difference in another signal. This allows mono FM receivers to receive and decode the sum signal while ignoring the difference signal, which is only necessary for separating the audio channels. Stereo FM receivers can receive a mono signal and decode it without the need for a second signal, and they can separate a sum signal to left and right channels if both sum and difference signals are received. Without the requirement for backward compatibility, a simpler method could have been chosen.[4]

Full backward compatibility is particularly important in computer instruction set architectures, one of the most successful being the x86 family of microprocessors. Their full backward compatibility spans back to the Intel 8080 processors produced in 1974, but not to its predecessor the Intel 8008. These fully backward compatible processors can process the same binary executable software instructions as their predecessors, allowing the use of a newer processor without having to acquire new applications or operating systems.[5] Similarly, the success of the Wi-Fi digital communication standard is attributed to its broad forward and backward compatibility, growing in popularity over standards that weren't backward compatible.[6]

Software

A program that creates document files may have a new version of that program that is said to be backward compatible with the old version of the program when it can both read and write documents that work with the old version. Everything that the old version could do must also be possible to do with the new version, including saving documents that can be read by the old version. If a newer software version cannot save files that can be read by the older version, it is not backward compatible with the older version, although it may provide an irreversible upgrade capability for the old files. This situation has often been used strategically by software vendors to force customers to purchase upgrades since, over time, the number of data files usable by an old version diminishes.

Many computer programs write their software versioning number in the data files and documents they create. This allows for newer programs recognize the data structure and allow some compatibility with it. Even when the newer program is unable to completely understand deprecated features in documents produced by a much earlier version of the program, the presence of a version number can help the user find some previous version of the program that can completely understand that file.

Backward compatibility of software libraries can be separated to binary compatibility and source compatibility. Binary compatibility means that newer versions of the library work with legacy software without requiring recompilation of the software, while source compatibility requires recompilation of the software but no changes to the source code.

Many platforms rely on emulation, the simulation of an older platform in software, to achieve backward compatibility.

Compiler backward compatibility may refer to the ability of a compiler of a newer version of the language to accept programs or data that worked under the previous version.[7] By this definition, if the previous versions were also backward compatible, which is often the case, then the new version will also accept input that worked under any prior version after, and including, the latest one that was not backward compatible. However, in practice, features are often deprecated and support is dropped in a later release, which is yet thought of as backward compatible.

A data format is said to be backward compatible with its predecessor if every message or file that is valid under the old format is also valid, and retains its meaning, under the new.[8]

Bugwards compatible

A newer system that attempts to achieve integration with an older system may implement backwards compatibility that maintains the known flawsor "bugs"in a way that is referred to as bug-compatible or "bugwards-compatible".[9][10][11]

Format rot

When backward compatibility is neglected, "format rot" may occur: loss of data not due to losing information, but due to losing the means to interpret it, either through unavailability of software to parse the format, unavailability of the operating system to run said software, or unavailability of hardware to run said operating system. Open formats are more resistant to format rot than proprietary formats.

List of backward compatible systems

Software

Video game consoles

Numerous video game consoles are backward compatible and are able to play the games created for predecessor consoles.

Computer hardware

TV and video

Camera lenses

Telephone

See also

References

  1. J.K. Petersen (2002), The Telecommunications Illustrated Dictionary (Second ed.), CRC Press, ISBN 9781420040678
  2. 1 2 Paul Belleflamme; Martin Peitz (2010), "Strategies in standard wars", Industrial Organization: Markets and Strategies, Cambridge University Press, ISBN 9780521862998
  3. Jeffrey Zeldman (2006). Designing with Web Standards. Peachpit Press. pp. 15–16. ISBN 0-321-38555-1.
  4. Steve Winder; Joseph Carr (2002), Newnes Radio and RF Engineering Pocket Book (3 ed.), Newnes, pp. 121–123, ISBN 9780080497471
  5. Naresh Jotwani (2009), Computer System Organization, Tata McGraw-Hill Education, pp. 320324, ISBN 9781259081217
  6. Eldad Perahia; Robert Stacey (2013), "Foreword", Next Generation Wireless LANs: 802.11n and 802.11ac, Cambridge University Press, ISBN 9781107016767
  7. Michael Kay, XSLT 2.0 Programmer's Reference, Wiley Default, 2004 ISBN 0-7645-6909-0 ISBN 978-0-7645-6909-8
  8. Bert Bos (2003), "Backwards Compatibility", What is a good standard?, retrieved July 12, 2016
  9. Keith Dawson, Jargon Scout
  10. Tobias Reif, bugwards compatibility, XHTML, embed
  11. Autoconf 2.13
  12. "All the Xbox One Backwards Compatibility Games". GameSpot. CBS Interactive. Retrieved September 30, 2016.
This article is issued from Wikipedia - version of the 12/3/2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.