100DaysOfGameDev: Day 31

Multiple inheritance in C++ can create crazy brain-draining graphs with little effort. The fact that OOP is marketed as a natural way for human thought, therefore empowering the programmer to create complex systems by breaking the program into small classes and setting up relationships between them is so untrue when you have such a big scale. After a period of development, the graph is not Shapes, Circles, and Trinagles anymore, but it's so complex that it's almost impossible to comprehend and picture it in your mind. Whereas it could have been solved much simpler if OOP was avoided overall. The Car does not inherit Wheels and Engine, it consists of them. Reminds me of one article, that I keep dear to my heart. It describes different types of programmers and defines a mental condition called “Brain OOP”, where Java, C#, and some C++ developers try to apply patterns to every part of their program and bloat it with abstraction. An intensive x86 assembly course is advised.