あらすじ本書では、関数型言語のClojureとオブジェクト指向言語のJavaを比較しながら、ソフトウェア設計の原則や手法の違いを解説している。また、これまでオブジェクト指向特有のものと思われてきたUML、SOLID原則、デザインパターンなどを関数型言語に適用することで、両者は必ずしも対立する概念ではなく、共通点がいくつもあり、補完し合える関係にあることを明らかにしようとしている。最終的には、両者を融合したものが「ソフトウェアの本来あるべき姿」だと主張するに至っている。