はじめに LSPは長くSOLIDの一角として扱われてきましたが、現在の設計実務から見ると、もはや独立した柱として強く意識する必要はかなり薄れています。これはLSPが間違っていたという話ではなく、LSPが効いていた時代の前提そのものが崩れた、という話です。バーバラ・リスコフとジャネット・ウィングの1994年論文は、上位型で証明できる性質が下位型でも成り立つという 行動的型付け を定式化しましたし、ロバート・C・マーチンも1990年代にはこれをC++のパブリック継承を律する原則として説明していました。 ただし、ここで一つ引っかかる点があります。もし現代の設計がそもそも継承を中心にしていないなら、その継承を安全に使うための原則を、なおも五大原則の一つとして抱え続ける意味はどこまであるのでしょうか。継承を主役から降ろした言語、継承を持ちつつも言語機能で危険を制御する方向へ進んだ言語、いずれもLSP

