【ごかんせい】
互換性 とは?
💡 古いものが新しい環境で動く・異なる製品間で連携できる「つながりやすさ」
📌 このページのポイント
- 後方互換性(Backward Compatibility)は新しいバージョンで古いものが動くこと
- 前方互換性(Forward Compatibility)は古いバージョンで新しいものが動くこと
- APIの互換性破壊(Breaking Change)はバージョンアップで既存コードが動かなくなること
- 「互換性を維持する」ことと「新機能追加・設計改善」はしばしばトレードオフになる
互換性って何?
互換性が壊れるって何?
互換性を維持するのは難しいの?
互換性を壊す変更って、どうやってユーザーに伝えるの?
「セマンティックバージョニング(SemVer)」が標準的な方法だよ。「メジャー.マイナー.パッチ(例: 2.1.3)」で、メジャーバージョンアップ(2→3)は互換性が壊れる変更がある、マイナー(1→2)は後方互換ありの機能追加、パッチは修正のみ。あと「Deprecation(非推奨化)」のプロセスも重要で、いきなり削除せずに「次のメジャーバージョンで削除予定」と事前に警告を出すのが作法なんだ。Pythonの__future__インポートもこの考え方だよ。
まとめ:ざっくりこれだけ覚えればOK!
互換性って出てきたら「異なるバージョン・システム間で動作する性質、後方互換性(古→新)が特に重要」と思えばOK!
📖 おまけ:英語の意味
「Compatibility」 = 両立できること・相性の良さ
💬 ラテン語のcompatibilis(共存できる)に由来。コンピュータの文脈では1960年代のIBMがハードウェア間のソフトウェア互換性を保証したことで普及した概念