単一パラダイムのあらゆるものは、抽象化の第一戒に違反しますが、それを知っている人はほとんどおらず、気にする人はさらに少ないようです。
必要に応じてオーバーライドできない抽象化を作成してはなりません。これにより、コードに醜い抽象化の反転がなくなります。
パラダイムがどうであれ、現実世界の問題を解決するために重要なコードを書き始めると、パラダイムにうまく適合しないものが出てくるでしょう。その 1 つのパラダイムがすべてであると宣言する場合、これは事態が悪化するときです。
いくつかの比喩を組み合わせると、マレットしかない場合、すべてがペグのように見え始め、すべての穴が丸くて、突然四角いペグになってしまい、のこぎりがない場合 (マレットのみ) 、)あなたは自分自身に問題を抱えています。
フリーランチはありません。すべてがトレードオフです。コードを書くのが簡単になればなるほど、他の誰かが読んで維持するのが難しくなり、また、作業している抽象化のレベルより下で問題が発生したときに、あなたや他の誰かがデバッグするのが難しくなります。(そして、最終的にはそうなるでしょう。なぜなら、完璧な抽象化は存在しないからです。
これは、マネージ コード、ガベージ コレクション、JIT コンパイル、および「すべてがオブジェクトである」というフィアットなどの「役立つ」テクノロジとパラダイムの根本的な欠陥です。それらは、その下に到達することを許可されていないベースラインレベルの抽象化を課し、そのレベルより下で何か問題が発生した場合、それに対してできることは何もありません. 修正できないため、悪い抽象化を回避するのに苦労しています。