3 ms·
People often confuse intelligence with complexity. Yes you have to be intelligent to understand complex problems and complex solutions. But just because you ar
by galaxyLogic 4y ago
People often confuse intelligence with complexity.
Yes you have to be intelligent to understand complex problems and complex solutions. But just because you are intelligent enough to understand a complicated solution, does not mean the solution is "intelligent".
True intelligence is about coming up with solutions where complexity is minimized.
Even though an intelligent person can understand a complicated solution the complexity of a solution strains even the most intelligent programmer. It takes time to ensure yourself that the solution is correct. Whereas with a simple solution that is easy. It takes intelligence to find a solution that is simple and thus easy.
- kaba0 4y agoThat’s a great take, but I have to mention that I disagree with a statement I may have only read into the thread: FP is not more complex just for the sake of it.
- galaxyLogic 4y agoI think FP is simple, uniform and very powerful. Because of that it becomes easy to express very complicated things in it, and thus write complicated programs. Like Y-Combinator. FP is simple but FP programs (often) are not. FP is a bit like Assembler. The building blocks are very simple. The resulting programs are not. In a more conventional language the building blocks are not so uniform there are many different things you build your program out of. Think COBOL. Not very abstract code at all. But easy to read. Conventional languages are more like "Domain Specific Languages" where the domain is building business etc. software. FP gives you the full (?) power of mathematics, it is fully general, not domain specific. Yet DSLs are often a better fit for the task at hand.
- yCombLinks 4y agoI think FP's niche popularity is primarily because of it's complexity. The complexity of it makes certain types of people feel smart, so they love it.
- epgui 4y agoCompletely disagree. Once you finish unlearning the patterns you're used to from other languages, there's nothing simpler than FP patterns. The hard part is not learning the thing, it's unlearning what you've already learned.
- john_the_writer 4y agoOddly I don't find FP any more complex than OOP. It's not that I'm all that smart, it's just FP and OOP just govern how you pass around data, not much else. I do tend to find FP does attract people who've really embraced jargon.
- NaturalPhallacy 4y agoCompletely agree. My favorite example of this is Douglas Adams' description of flight (or orbital mechanics): "Throw yourself at the ground and miss."