3 ms·
I disagree. Functional programming languages are not harder than for example OO-languages. The thing is that people usually learn procedural or OO -paradigm fir
by illuminati1911 9y ago
I disagree. Functional programming languages are not harder than for example OO-languages. The thing is that people usually learn procedural or OO -paradigm first when they start programming and moving on to FP requires a mindset change.
- sametmax 9y agoRecursion is harder than iteration. Immutability is harder than mutability. Callbacks, dependancy injection, and implicit loops are hard to wrap your head around. Oop is just a strut with functions and a fancy dress. It's not really a new way to think. I trained many, many, many people in small groups in programming. The functional concepts are always the hard ones to explain. And as a dev, even when i deeply understand the benefits of immutability, i find it often being a huge constraint for the most mundane tasks. Most programmers make simple programs. They don't need complex tools.
- gagege 9y agoI think you're forgetting what it was like to learn your first programming language. A lot of concepts in procedural programming and OOP are hard to wrap your head around at first (static, by ref or by val, the difference between base classes and interfaces).
- sametmax 9y agoYou don't have to learn any of this in python, ruby or php. Oop or functional doesn't need to mean low level. Lower level is harder no matter the paradigm. The features I mentioned are functional no matter the level.
- lkitching 9y agoNeither callbacks nor dependency injection are functional concepts, and implicit loops are pervasive in Ruby (and non-linear control flow in general). OO in Ruby is quite a long way from structs + function pointers.
- dagw 9y agoThis matches my observations as well. My university used Haskell as its intro language for Math and CS students, and the people who struggled the most where those who already knew a bit of programming in another language, but weren't really strong programmers. Those who had never programmed before had, on the whole, no great problem understanding Haskell, but then got completely lost in the follow up course that was taught in Java and focused on OO.