Slightly off-topic, but the most honest programming language book that describes “what we got wrong” is “Effective Java” by Josh Bloch. It also used to be the best book to learn Java before 1.7 (maybe still the best today, but I’m not following Java anymore).