Architecture vs Agile

 

C++ can be really quite useful and fast for developing architecture-oriented software with clear interfaces. It is not good for on the fly tweaks and experimentation. New functionality requires new layers, from an object perspective. This is not always trivial. The rigid nature of the language also seems to encourage rotten code. Simple changes require significant effort to do right, or….. you could just hack a few lines and get it “good enough.” Guess what happens when you’re under the gun, time-wise?

 

Python can get a bit more chaotic if you’re a sloppy coder. It enforces far less than strongly casted languages. On the flip-side, if you are disciplined enough to keep your code well-organized, it offers orders of magnitude more flexibility. It’s so easy to do things “the right way” that it becomes the default. Have to rip out a class and refactor it into thirds? 20 minutes and done. Problem solved, and the code evolves with your vision of the system, rather than turning into a stagnant reminder of the vision from a year ago.