This is going to be too much to fit in one post. So lets start with the most provocative. I'm over Constructors and Deconstructors It's such a staple of OOP and yet I could seriously do without them now. If you're like me you learned these are great places to create/delete required objects, open/close files and all that stuff. But it just causes trouble. Here's a typical example: MyObject() { anotherObject = new AnotherObject(); fileHandle = open("configfile.xml"); } ~MyObject() { close(fileHandle); delete anotherObject; } Great! What could be wrong with that? We'll there's two things. 1. You want to customise things in a child class Ideally you shouldn't need to mess with the parent. Maybe due to some rules on shared code you can't change the parent (easily). But if you want anotherObject to be CustomObject and use a different filename you end up with this crap: MyObjectChild() : MyObject() { delete anotherObject; anotherObject = new CustomOb...
About stuff I like and you should like more