3 ms·
I think it's possible to take the cult of simplicity too far. As is the case with over engineering. There is always the risk of over-simplifying and dumbing do
by chartpath 5y ago
I think it's possible to take the cult of simplicity too far. As is the case with over engineering.
There is always the risk of over-simplifying and dumbing down the inherent complexity of problems. Instead of representing the problem space with a good data model, programmers who love to brag about their love of "simplicity" sometimes end up with many extra "simple" layers than are necessary.
It's not a binary because there are a lot of factors that go into simplicity and some matter more than others in different contexts. One person's simplicity is another's tedious verbosity. And another's use of specialized programming techniques is someone else's scary learning curve.
Much easier to just label My Preferred Solution as The Most Simple and Parsimonious because clearly I am the smartest and most scientific thinker in the group. Other approaches are Too Complex, therefore I don't need to understand them. It's just projection of insecurity about knowledge gaps by hiding under the appearance of being an iconoclast.
That said, there are definitely some castle-in-the-sky and nonsense-on-stilts implementations out there :) Some would say ORMs, others would point to the actor model, and others would even say anything higher level than pointers and for-loops. For what purpose though?
- Hypx_ 5y agoThe entire concept of "worse is better" can be more accurately be described as "don't let the perfect be the enemy of the good." Simple, functional solutions are good ideas, and attempt to replace them with perfect ones are likely to fail. In software, that just means writing code using practical languages that are proven to work. It does not need to be written in the ideal language, especially if using the ideal language requires very specialized skills. Furthermore, you do not need software that solves every single corner case. Once you have solve the main problems and most of the minor ones, there's no reason to waste years solving the last few annoying issues.