Backward compatibility: Difference between revisions

Content deleted Content added
→‎Tradeoffs: Complete bias bogus.
Tags: Reverted Mobile edit Mobile web edit
No edit summary
(24 intermediate revisions by 22 users not shown)
Line 1:
{{Short description|Technological ability to interact with older technologies}}
[[File:Wii-gamecube-compatibility.jpg|thumb|The first model of the [[Wii]] features backwardsbackward compatibility with its predecessor, the [[GameCube]], having the ability to run its discs and use its controllers and memory cards. Later versions of the system removed the controller slots, effectively removing this feature.]]
 
In [[telecommunications]] and [[computing]], '''Backwardbackward compatibility''' (sometimes known asor '''backwards compatibility''') is a property of an [[operating system]], software, real-world product, or [[technology]] that allows for [[interoperability]] with an older [[legacy system]], or with [[Input/output|input]] designed for such a system, especially in [[telecommunications]] and [[computing]].
 
Modifying a system in a way that does not allow backward compatibility is sometimes called "[[wikt:breaking change|breaking]]" backward compatibility.<ref name="Belleflamme">{{citation|title=Industrial Organization: Markets and Strategies|first1=Paul|last1=Belleflamme|first2=Martin|last2=Peitz|date=2010|publisher=Cambridge University Press|isbn=9780521862998|chapter=Strategies in standard wars}}</ref> Such breaking usually incurs various types of costs, such as [[Switching barriers|switching cost]].
 
A complementary concept is ''[[forward compatibility]].''; Aa design that is forward-compatible usually has a [[Technology roadmap|roadmap]] for compatibility with future standards and products.<ref name="Zeldman">{{cite book|title=Designing with Web Standards|first=Jeffrey|last=Zeldman|year=2006|publisher=Peachpit Press|isbn=0-321-38555-1|url=https://books.google.com/books?id=ZCPWYFoWaMIC&q=compatibility|pages=15–16}}</ref>
 
==Usage==
Line 12:
A simple example of both backward and forward compatibility is the introduction of [[FM broadcasting|FM radio]] in [[stereophonic sound|stereo]]. FM radio was initially [[monaural|mono]], with only one audio channel represented by one [[signal (electrical engineering)|signal]]. With the introduction of two-channel stereo FM radio, many listeners had only mono FM receivers. Forward compatibility for mono receivers with stereo signals was achieved by sending the sum of both left and right audio channels in one signal and the difference in another signal. That allows mono FM receivers to receive and decode the sum signal while ignoring the difference signal, which is necessary only 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.<ref>{{citation|title=Newnes Radio and RF Engineering Pocket Book|first1=Steve|last1=Winder|first2=Joseph|last2=Carr|edition=3|date=2002|publisher=Newnes|isbn=9780080497471|pages=121–123}}</ref>
 
Full backward compatibility is particularly important in computer [[instruction set architecture]] architecturess, onetwo of the most successful being the [[x86IBM]] family of [[microprocessorIBM System/360|360]]s. Their full backward compatibility spans back to the 16-bit /[[IntelIBM 8086System/370|370]]/[[IntelIBM 8088System/390|8088390]] processors introduced in 1978. (The 8086/8088,[[z/Architecture|Zseries]] in turn, were designed with easy machine-translatabilityfamilies of programs written for its predecessor in mindmainframes, although they were not instruction-set compatible withand the 8-bit [[Intel]] 8080[[x86]] processor asfamily of 1974. The [[Zilog Z80microprocessor]], however, was fully backward compatible with the Intel 8080s.)
 
IBM announced the first 360 models in 1964 and has continued to update the series ever since, with migration over the decades from 32-bit register/24-bit addresses to 64-bit registers and addresses.
 
Intel announced the first [[Intel 8086]]/[[Intel 8088|8088]] processors in 1978, again with migrations over the decades from 16-bit to 64-bit. (The 8086/8088, in turn, were designed with easy [[source-to-source compiler|machine-translatability]] of programs written for its predecessor in mind, although they were not instruction-set compatible with the 8-bit [[Intel 8080]] processor of 1974. The [[Zilog Z80]], however, was fully backward compatible with the Intel 8080.)
 
Fully backward compatible processors can process the same [[executable|binary executable software instructions]] as their predecessors, allowing the use of a newer processor without having to acquire new [[application software|applications]] or [[operating system]]s.<ref>{{citation|title=Computer System Organization|author=Naresh Jotwani|publisher=Tata McGraw-Hill Education|date=2009|pages=320&ndash;324|isbn=9781259081217}}</ref> Similarly, the success of the [[Wi-Fi]] digital communication standard is attributed to its broad forward and backward compatibility; it became more popular than other standards that were not backward compatible.<ref>{{citation|title=Next Generation Wireless LANs: 802.11n and 802.11ac|first1=Eldad|last1=Perahia|first2=Robert|last2=Stacey|date=2013|publisher=Cambridge University Press|isbn=9781107016767|chapter=Foreword}}</ref>
 
=== In software ===
{{See also|Binary-code compatibility|DLL Hell|Opaque pointer}}
[[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.<ref>{{cite book|url=https://archive.org/details/xslt20programmer0000kaym|url-access=registration|page=[https://archive.org/details/xslt20programmer0000kaym/page/123 123]|quote=forward compatibility.|first=Michael|last=Kay|title=XSLT 2.0 Programmer's Reference|publisher=Wiley|date=2004|isbn=0-7645-6909-0}}</ref>
In software development, backward compatibility is a general notion of interoperation between software pieces that will not produce any errors when its functionality is invoked via [[API]].<ref name=":0">{{Cite web |last=((etc1M)) |date=2019-12-18 |title=Backward Compatibility in Software Development: What and Why |url=https://www.redstar.be/backward-compatibility-in-software-development-what-and-why/ |access-date=2023-05-13 |website=Red Star IT |language=en-US}}</ref> The software is considered stable when its [[API]] that is used to invoke functions is stable across different versions.<ref name=":0" />
 
AIn dataoperating formatsystems, isupgrades to newer versions are said to be backward compatible with its predecessor if everyexecutables messageand orother filefiles that is valid underfrom the oldprevious formatversions iswill still valid, retaining its meaning, under thework newas formatusual.<ref>{{citeCite web book|title=What is aBackward GoodCompatible? Standard?|chapter-url=httphttps://www.w3computerhope.orgcom/Peoplejargon/Bosb/DesignGuide/compatibilitybackcomp.htmlhtm |chapteraccess-date=Backwards2023-05-13 Compatibility|firstwebsite=Bert|last=BosComputer Hope |date=2003|access-date=JulyDecember 1231, 20162022 |language=en}}</ref>
 
In [[Compiler|compilers]], backward compatibility may refer to the ability of a compiler offor a newer version of the language to accept source code of programs or data that worked under the previous version.<ref>{{cite book|url=https://archive.org/details/xslt20programmer0000kaym|url-access=registration|page=[https://archive.org/details/xslt20programmer0000kaym/page/123 123]|quote=forward compatibility.|first=Michael|last=Kay|title=XSLT 2.0 Programmer's Reference|publisher=Wiley|date=2004|isbn=0-7645-6909-0}}</ref>
 
A data format is said to be backward compatible when a newer version of the program can open it without errors just like its predecessor.<ref>{{cite book|title=What is a Good Standard?|chapter-url=http://www.w3.org/People/Bos/DesignGuide/compatibility.html|chapter=Backwards Compatibility|first=Bert|last=Bos|date=2003|access-date=July 12, 2016|archive-date=March 11, 2016|archive-url=https://web.archive.org/web/20160311205921/http://www.w3.org/People/Bos/DesignGuide/compatibility.html|url-status=live}}</ref>
 
==Tradeoffs==
{{Generalize|section|date=May 2023}}
===Benefits===
There are several incentives for a company to implement backward compatibility. Backward compatibility can be used to preserve older software that would have otherwise been lost when a manufacturer decides to stop supporting older hardware. Classic video games are a common example used when discussing the value of supporting older software. The cultural impact of video games is a large part of their continued success, and some believe ignoring backward compatibility would cause these titles to disappear.<ref>{{Cite web|url=https://www.popmatters.com/192068-backwards-compatibility-is-the-only-way-forward-2495543836.html|title=Backwards Compatibility is the Only Way Forward|date=2015-04-10 |website=PopMatters|access-date=2019-11-05|archive-date=2019-09-29|archive-url=https://web.archive.org/web/20190929024545/https://www.popmatters.com/192068-backwards-compatibility-is-the-only-way-forward-2495543836.html|url-status=live}}</ref> Backward compatibility also acts as a selling point for new hardware, as an existing player base can more affordably [[upgrade]] to subsequent generations of a console. This also helps to make up for lack of content at the launch of new systems, as users can pull from the previous console's library of games while developers transition to the new hardware.<ref name=":1">{{Cite web |url=http://techconnectmagazine.com/what-is-backwards-compatibility/|title=Understanding Backwards Compatibility and How It Benefits Gamers|date=2018-08-14 |website=Tech Magazine|access-date=2019-11-05|archive-date=2019-10-02|archive-url=https://web.archive.org/web/20191002050018/http://techconnectmagazine.com/what-is-backwards-compatibility/|url-status=live}}</ref> Moreover, studies in the mid-1990s found that even consumers who never play older games after purchasing a new system consider backward compatibility a highly desirable feature, valuing the mere ability to continue to play an existing collection of games even if they choose never to do so.<ref name=NGen39>{{cite magazine |title=Backward Compatibility for PlayStation 2? |magazine=[[Next Generation (magazine)|Next Generation]]|issue=39 |publisher=[[Imagine Media]] |date=March 1998|page=22}}</ref> Backward compatibility with the original [[PlayStation (console)|PlayStation]] (PS) software discs and peripherals is considered to have been a key selling point for the [[PlayStation 2]] (PS2) during its early months on the market.<ref>{{Cite web|url=http://pnpgames.com/blog/?page_id=25 |title=Sony Playstation 2(PS2)|website=Pnpgames|access-date=March 15, 2020|archive-date=July 13, 2020|archive-url=https://web.archive.org/web/20200713164550/http://pnpgames.com/blog/?page_id=25|url-status=live}}</ref>
 
Despite not being included at launch, Microsoft slowly incorporated backward compatibility for select titles on the Xbox One several years into its product life cycle.<ref name=":3">{{Cite web |url=https://www.androidcentral.com/playstation-5-set-be-backward-compatible-remasters-wont-be-necessary|title=Remasters aren't needed if the PS5 is completely backward compatible |date=2019-09-24 |website=Android Central|access-date=2019-11-10|archive-date=2019-11-10|archive-url=https://web.archive.org/web/20191110025710/https://www.androidcentral.com/playstation-5-set-be-backward-compatible-remasters-wont-be-necessary|url-status=live}}</ref> Players have racked up over a billion hours with backward -compatible games on Xbox, and the newest generation of consoles such as [[PlayStation 5]]<ref>{{cite web | url = https://www.eurogamer.net/articles/2020-03-20-sony-clarifies-overwhelming-majority-of-ps4-games-will-be-backward-compatible-on-ps5 | title = Sony clarifies "overwhelming majority" of PS4 games will be backward compatible on PS5 | first = Matt | last = Wales | date = March 20, 2020 | access-date = April 8, 2020 | work = [[Eurogamer]] | archive-date = April 6, 2020 | archive-url = https://web.archive.org/web/20200406151051/https://www.eurogamer.net/articles/2020-03-20-sony-clarifies-overwhelming-majority-of-ps4-games-will-be-backward-compatible-on-ps5 | url-status = live }}</ref> and [[Xbox Series X/S]] also support this feature. A large part of the success and implementation of this feature is that the hardware within newer generation consoles is both powerful and similar enough to legacy systems that older titles can be broken down and re-configured to run on the Xbox One.<ref name=":4">{{Cite web|url=https://www.eurogamer.net/articles/digitalfoundry-2017-xbox-one-x-back-compat-how-does-it-actually-work|title=Xbox One Backwards Compatibility: How Does It Actually Work?|last=Leadbetter|first=Richard |date=2017-12-09 |website=Eurogamer|access-date=2019-11-10|archive-date=2019-01-14|archive-url=https://web.archive.org/web/20190114210240/https://www.eurogamer.net/articles/digitalfoundry-2017-xbox-one-x-back-compat-how-does-it-actually-work|url-status=live}}</ref> This program has proven incredibly popular with Xbox players and goes against the recent trend of studio made remasters of classic titles, creating what some believe to be an important shift in console makermakers's strategies.<ref name=":3" />
 
===Costs===
The monetary costs of supporting old software is considered a large drawback to the usage of backward compatibility.<ref name=":1" /><ref name=NGen39/> The associated costs of backward compatibility are a larger [[bill of materials]] if hardware is required to support the legacy systems; increased complexity of the product that may lead to longer [[time to market]], technological hindrances, and slowing innovation; and increased expectations from users in terms of compatibility.<ref name=Belleflamme /> Because of this, several console manufacturers phased out backward compatibility toward the end of the console generation in order to reduce cost and briefly reinvigorate sales before the arrival of newer hardware.<ref name=":2">{{Cite web|url=https://www.cnet.com/news/game-consoles-and-the-death-of-backward-compatibility-why-we-dont-care/|title=Game consoles and the death of backward-compatibility: Why we don't care|last=Stein|first=Scott|website=CNET|access-date=2019-11-05|archive-date=2019-09-29|archive-url=https://web.archive.org/web/20190929024544/https://www.cnet.com/news/game-consoles-and-the-death-of-backward-compatibility-why-we-dont-care/|url-status=live}}</ref>
 
It is possible to bypass some of the hardware costs. In earlier versions of the PS2, a CPU core identical to that of the PS serves a dual purpose, either as the main CPU in PS mode, or [[Clock rate|upclocking]] itself to offload [[Input/output|I/O]] in PS2 mode. Such an approach can backfire, however, as in the case of the [[Super Nintendo Entertainment System]] (Super NES), which opted for the peculiar [[WDC 65C816|65C816]] over more popular 16-bit microprocessors on the basis that it would allow easy compatibility with the original [[Nintendo Entertainment System|NES]], but NES compatibility ultimately did not prove workable once the rest of the Super NES's architecture was designed.<ref>{{Cite web |url=https://gamingreinvented.com/uncategorized/the-snes-was-supposed-to-be-backwards-compatible/|title=The SNES Was Supposed to be Backwards Compatible?|website=Gaming Reinvented|date=2015-08-10|access-date=2022-02-24|archive-date=2022-02-24|archive-url=https://web.archive.org/web/20220224183517/https://gamingreinvented.com/uncategorized/the-snes-was-supposed-to-be-backwards-compatible/|url-status=live}}</ref>
 
Backward compatibility introduces the risk that developers will favor developing games that are compatible with both the old and new systems, since this gives them a larger base of potential buyers, resulting in a dearth of software which uses the advanced features of the new system.<ref name=NGen39/>
 
===Alternatives===
With the decline in physical game sales and the rise of digital storefronts and downloads, some believe backward compatibility will soon be obsolete.<ref name=":2" /> Many game studios are re-mastering and re-releasing their most popular titles by improving the quality of graphics and adding new content. These remasters have found success by appealing both to nostalgic players who remember enjoying the original versions, and to newcomers who may not have had the original system it was released on. For most consumers, digital remasters are more appealing than hanging on to obsolete hardware.
 
For the manufacturers of consoles, digital re-releases of classic titles are a large benefit. It not only removes the financial drawbacks of supporting older hardware, but also shifts all of the costs of updating software to the developers. The manufacturer gets a new addition to their system with name recognition, and the studio does not have to develop a new game.
 
==See also==
Line 56 ⟶ 72:
==External links==
* {{Commons category-inline}}
{{Software engineering}}
 
[[Category:Backward compatibility| ]]