I want to raise a point that so far I have not seen in the top N comments: Often simplicity and cleverness are not opposites, because you can only find the simplest way to express something, when you are clever about it. Your solution doesn't have to "smell clever", no, it can be deceptively simple, making the casual reader think "of course it works this way", but when such casual reader was supposed to come up with such a solution, they might invent something unnecessarily convoluted, because their mind has not cut through all the stuff like a knife through butter and they were not so clever. To find the simplest abstraction, that is still able to represent everything you need to represent, and at the same time doesn't have unpleasant consequences like being very slow, or super difficult to understand is the actual cleverness. Writing code no one can understand is not actually that clever. It might be clever in terms of oneself solving a problem at a specific time, but it is not so clever in terms of that thing being maintainable, adaptable, readable, improvable, in the mid and long term.
We don't write everything in lambda calculus or SKI calculus or something like that, even though those things are made up of very simple parts, complexity would emerge. They are not the right choice for most tasks. How do you make it readable? Can you write something that is very clear and performant at the same time, while preventing yourself from programming yourself into a corner? That's where you need to get really clever.
We don't write everything in lambda calculus or SKI calculus or something like that, even though those things are made up of very simple parts, complexity would emerge. They are not the right choice for most tasks. How do you make it readable? Can you write something that is very clear and performant at the same time, while preventing yourself from programming yourself into a corner? That's where you need to get really clever.