Chaos, memes and software design patterns
Your code is not DRY/SOLID/readable/maintainable. Your API is not “RESTful”. You’re not respecting the “tell don’t ask” principle. Your code is not well documented. “Inline comments are code-smell”. This code is not efficient. “Premature optimization is the root of all evil”. You don’t need a library for this feature, you should avoid “technology lock-in”. “Don’t reinvent the wheel”. In a few decades of software development we have seen the rise and fall of countless design principles/philosophies/patterns. Some of them seem to contradict each other at times and debates around these topics are often heated and reveal a certain level of stubbornness and quasi-tribalism on all sides. Can we find technical arguments to settle them?