3 ms·
I prefer easy things over complex things. Only a fool would prefer complexity for complexity's sales. Repetitive, boilerplate is easier to understand and work w
by computerex 5y ago
I prefer easy things over complex things. Only a fool would prefer complexity for complexity's sales. Repetitive, boilerplate is easier to understand and work with than highly abstract, extremely clever code.
For personal projects I'd say write the code however you want. But for professional work, I think the emphasis should be firmly on code readability. I'd almost always forego some beautiful abstraction that's hard to grok without the necessary background in favor of dumb abstractions that are easier for most people to understand.
- Quekid5 5y agoEasy is not the opposite of complex. Simple is the opposite of complex. Once systems grow, 'easy' quickly turns bad because of lack of abstraction capability. EDIT: A good video on this is 'Simple Made Easy' by Rich Hickey.
- ironmagma 5y agoRelevant talk by Rich Hickey, “Simple Made Easy”: https://youtu.be/kGlVcSMgtV4 https://youtu.be/kGlVcSMgtV4
- nicoburns 5y ago> Repetitive, boilerplate is easier to understand and work with than highly abstract, extremely clever code. I think much of the reason for disagreement is that this isn't universal. I find boileplate heavy code much harder to reason about than abstracted code. Especially if the abstractions are either standard ones (map, filter, etc), or well-documented. I guess there's a happy medium. Personally I find Java too abstracted. Go not abstracted enough, and that lanaguages like Rust and JavaScript strike a good balance.