互換性

互換性（ごかんせい、）とは、ある部品やコンポーネント（構成要素）などを置き換えても同様に動作させることができる性質のこと。

特に工業製品では、互換性を確保することで新たなシステムを用意する必要がなくなり、設計や部品の再利用性が高まることでコストカットを見込めることや、過去の製品からの買い替えなどを進めることができたりする。ただし、古に縛られてしまうために技術革新の妨げとなるという側面もある。互換性を確保するために余計なコストがかかる場合は軽視されることがあるほか、メーカー間の互換性はベンダーロックインを狙うため、あえて削ぐものもある。

互換性の種類 
互換性はその性質により、以下のような種類がある。

 相互互換性（）
 機能・性能などが類似しており、相互に置き換えが可能なこと。交換可能性とも呼ばれる。
  前方互換性（）
 新しいシステム向けのデータなどが古いシステムでも使用できること。
  後方互換性（）
 古いシステム向けのデータなどが新しいシステムでも全て使用できること。
  上位互換性（, Superset）
 機能・性能・グレードが上位の製品が、下位の製品の機能も有すること。
  下位互換性（, Subset）
 機能・性能・グレードが下位の製品が、上位の製品の機能を有すること。

後発の製品はそれ以前に発売されているものよりも機能や性能が優れていることが多く、後発の製品は後方互換性と上位互換性を有することがよくある。後発の製品が以前に発売された製品の廉価版であるときなどにこれは成り立たない。逆に先発の製品が、前方互換性・下位互換性を持つこともある。

上位互換という表現は英語から輸入されたものであるが、英語圏においてはupper compatible/Lower compatibleという言い方は一般に使われず、Forward compatiblityなどが通常である。 

2000 年代中頃までは、下位互換=後方互換性の意味で任天堂やソニー、MSなどによって使用されており、今とは意味が逆であった（下位互換がより新しい製品）。

英語ではFoward compatibility/upward compatible, Backward compatibility/downward compatibleと対になっているが、日本語ではdownward compatibeを下方互換とせず、下位互換としてしまったために、意味の混乱が起きている。

単に従来よりも性能がいいことを「上位互換」と称するのは正しくない（アナログやローテクの誤用と同じく）。

またソフトウェアにおいては、異なる規格間で仕様に互換がある場合、上位集合的互換性を持つものを「スーパーセット」と呼び、部分集合的互換を持つものを「サブセット」とも呼ぶことがある。例えば、データ形式の1つであるYAMLはJSONのスーパーセットであり、JSONはYAMLのサブセットであったり、画像形式の１つであるMNGはPNGのスーパセットであるなど。なお、制約の集合と、「その制約を満たす何か」の集合では、サブセットとスーパーセットの対応が逆になるため、この集合ベースの考え方もまた混乱の原因になりやすい。敢えて単純化した例を示すと「0以上の整数」と「0以上の整数で、かつ、3の倍数」を比較すると、前者のほうが制限の数は少なく（サブセットであり）、一方でそれが意味している整数自体は、後者のほうがサブセットになっている。

互換性の実現 
相互に互換性を有する部品やコンポーネント（構成要素）は、なんらかの標準化された規格にしたがっていることが多い。これは、なんらかの機関、団体によって規定されたデジュリスタンダードと、市場で大きなシェアをもつものに倣ったデファクトスタンダードの2通りがあり、いずれもその規格の範囲内で互いに交換することが可能である。

また、市場のシェアや普及率が大きいことなどを理由としてのちの製品に前方・後方互換を持たせることも多い。例えばビジネスで多くの文書が作成・運用されているMicrosoft Officeは、過去のバージョン製品とファイルをやりとりできるように新しいバージョンの製品にファイル形式の前方互換および後方互換を持たせている。Office 2007以降で採用されたOffice Open XML形式ファイルは、Office 2007以降の製品間で相互にやりとりできるものの、Office 2003以前では（互換機能パックを使わない限り）利用することはできないが、Office 2007以降でも旧製品で利用可能な旧形式（Office 97 - 2003）で読み書きすることは可能である。そのほか、すでに広く普及していたUSB 2.0規格の後継となるUSB 3.0ポートでも、USB 2.0までしか対応していない既存の古い周辺機器（USBメモリなど）が接続できるよう、後方互換を持たせたりといった例がある。また、ユーザーの慣れやユーザビリティも互換性を確保するための大きな理由となりうる。

利点・欠点 
大まかに言えば既存のデータやシステム、知識などが無駄にならないことがユーザー側の視点に立ったときの利点である。

対して、より効率のいい手段・方法があるにもかかわらず古い方式（レガシーシステム）に拘束されてしまうため、互換性を確保しつづけるためのコストがかかってしまうことがメーカー側の視点に立ったときの欠点となる。PC/AT互換機のBIOSのようにレガシーシステムのサポートが肥大化した結果、規格の拡張に支障を生じてしまうケースもある。

脚注

関連項目 
 ライセンスの互換性 - ソフトウェアライセンスにおける互換性
 互換モード
 相性
 インタフェース (情報技術)
 アプリケーションプログラミングインタフェース（API）
 アプリケーションバイナリインタフェース（ABI）

インタフェース
技術
設計
性能