定義
新しく登場した技術や機器が、前の世代の規格をそのまま受け入れられる性質です。古い規格で作られたデータ、ソフトウェア、周辺機器を正常に動かします。最新の製品が、古い環境との互換性を自分で引き受けるわけです。おかげでユーザーは、今まで使ってきた資産を捨てずに使い続けられます。
新しい機器を買っても、前のゲームがそのまま遊べます
思い切って最新のゲーム機を買ったと想像してみてください。機械は新しくなっても、前の機種で遊んでいた何十本ものゲームソフトをそのまま遊べたら、うれしいですよね。新しい機器が古いディスクを問題なく読み取ってくれる性質、それが後方互換性です。
ここでの「後方」は、後ろ、つまり過去の世代を指します。最新の製品が過去の古い規格やファイルまで広く受け止めてくれる、という意味です。パソコンの青い高速USB端子に、ずっと前の古いUSBメモリを挿しても問題なく認識されるのも、同じ理由です。なお、日本語で「下位互換」というと「上位の製品の機能を一部しか持たない劣った製品」という別の意味で使われることが多いので、この意味では「後方互換」と呼ぶのが一般的です。
消費者は、お金をかけて買ったソフトや機器を一夜にして捨てる必要がありません。メーカーにとっても、既存のお客さんが使ってきたコンテンツをそのまま持って最新製品へ乗り換えてもらいやすくなるので、お客さんの過去の資産を守る橋として大きな役割を果たします。
最新技術は、どうやって古いものを理解するの?
後方互換性を実現する方法は、大きく二つに分かれます。一つ目は、古い機器で使われていた部品や物理的な形を、最新の機器の中にそのまま残す方法です。形が同じ端子を維持したり、昔の演算チップを基板の片隅に一緒に載せて、古いソフトをそのまま動かしたりします。パソコンのx86系CPUが、大昔の命令を設計の中に残し続けているのもこの方法にあたります。
二つ目は、ソフトウェアの力を借りる方法です。最新のコンピューターが、過去のコンピューターの動き方をそっくり真似する仮想環境を作り、古い命令を新しい命令にリアルタイムで「通訳」します。これをコンピューターの分野ではエミュレーション(仮想的な再現)と呼びます。
エミュレーターというプログラムが、古い機械の命令の決まりを一つひとつ真似するので、新しい機械のハードウェア構造がまったく違っても、古いプログラムを動かせます。こうした過去のルールを真似る通訳の仕組みのおかげで、複雑なコードの修正をしなくても、古いプログラムが最新の機械の上で自然に動くのです。
もう少し正確に言うと:技術の進歩と互換性の綱引き
後方互換性はユーザーにとってとても便利ですが、技術を開発する側にとっては大きな重荷にもなります。何十年も前の古い動き方までずっと抱えていこうとすると、機械の内部が無駄に複雑になり、開発コストも跳ね上がるからです。
新しい技術が思い切り飛躍できず、古い技術の古いルールに足を引っ張られることもあります。こうした負担は、技術的負債(目先の便利さのために、将来支払わなければならなくなる負担)の一形態と見なされることもあります。そのため、スマートフォンのメーカーが従来の3.5mmイヤホンジャックを思い切ってなくしたり、古い32ビットアプリへの対応を完全に打ち切って、混乱を覚悟のうえで前に進んだりすることもあります。
また、後方互換性はすべての過去を無条件に受け入れるわけではありません。文字コードのUTF-8は、英語中心のASCIIとは完全に互換性がありますが、Shift_JISのような古い日本語の文字コードとは互換性がなく、そうした文書をUTF-8で開くと文字化けしてしまいます。このように、規格ごとに約束された範囲は厳密に決まっています。革新のために過去の古い荷物を下ろす決断と、後方互換性とのバランスがいつも大切なのは、このためです。
よくある誤解
後方互換性とは、古い機械がこれから出る最新のソフトを実行できるという意味だ。
それは前方互換性(Forward Compatibility)にあたります。後方互換性は、最新の機械が古いソフトや旧型の機器を問題なく受け入れられる能力のことです。
技術が進歩すれば、前の世代の古いプログラムはすべて自然に互換性を持つ。
後方互換性は自然には生まれません。開発チームが追加のコストと労力をかけて、古い規格に合わせた部品を載せたり、専用の通訳ソフトを別に設計したりして、はじめて実現します。
日常で出会う場面
プレイステーション5に、前世代のプレイステーション4のゲームディスクを入れてそのまま起動する場合(ほとんどのゲームは動きますが、一部は動きません)
最新のノートパソコンのUSB 3.0ポートに、10年前に買ったUSB 2.0の外付けハードディスクをつないでデータを移す場面
最新のWindowsで、Windows 7の時代に使っていた業務用ソフトを互換モードで起動して作業する場面
つまり ひとことで
新しい機器やシステムが、前の世代の規格で作られたソフトウェアや装置をそのまま認識して実行してくれる、技術的な気配りです。