Bertrand Meyer, writing about 25 years ago in Object‑Oriented Software Construction, which is actually about the Eiffel language, takes it for granted that inheritance is essential, and multiple inheritance to boot. Nowadays I hear people say things like, “I hardly ever use inheritance.”
Have you written anything about inheritance as a bad practice or a good practice?
Inheritance gets its own section in the book. I don't label it as something inherently good or bad. It is a useful technique but one that can be easily abused in ways that cause headaches. I chose the most migraine-inducing misuses and discussed why they ought to be avoided.
I don't think Bloch and I give any opposing advice on inheritance. If memory serves, my book discusses the problems with deep inheritance hierarchies, whereas Bloch's doesn't. (This comes only from memory however, so don't take my word as gospel. I don't want to unwittingly do a disservice to Bloch's book.) Similarly, Bloch's book contains some advice that mine doesn't.