3 ms·
It might be true that functional programming is difficult to learn for programmers not well versed in mathematics. My response to that is: Toughen up, princess.
by raganwald 15y ago
It might be true that functional programming is difficult to learn for programmers not well versed in mathematics. My response to that is: Toughen up, princess.
Pithy, but also tinged with sadness. It's a response to the same argument against programming languages being "too powerful" or using "difficult to understand" pattern like parser combinators.
- gnosis 15y ago"It might be true that functional programming is difficult to learn for programmers not well versed in mathematics." This is only seen to be a valid complaint because mathematics education in the US sucks. As such, it's likely that future dominance in the functional programming field is likely to come from other countries.
- swannodette 15y agoI'm a fan of FP and I find most of the arguments being made here for FP over OO to be quite unconvincing. You don't need to understand mathematics anymore in FP than you need to in OO. If there is any mathematics in FP it's of the logical variety anyhow - which programmers are already familiar with.
- raganwald 15y agoSince I don't have any training in Category Theory, I don't know what I don't know. I do know that it seems from the outside of the Ivory Tower that the explanations for FP are far more difficult to understand than the FP itself. But then again, perhaps if I had studies mathematics, I might have some additional insights into FP that go beyond knowing all of the jargon.
- swannodette 15y agoYou don't need to understand the Y Combinator to understand recursion. You don't need to understand the theory behind the Lambda Calculus to write anonymous functions. You don't need to understand Gentzen Calculi to write interesting Prolog programs. You don't need to understand the Curry-Howard isomorphism to understand static typing. These things deepen your understanding certainly, but not understanding them does not in any way limit our ability to write incredible programs.
- shadowfox 15y agoTo add to what you said, you certainly need not understand Category theory in order to be effective as a functional programmer. Category theory is a very powerful concept. Understanding elements of it will certainly open your mind to the fundamental nature of mathematics. But the essential aspects of it have long been mapped in to other, more accessible, theoretical frameworks. So you can usually get away with never knowing that subject :)
- silentbicycle 15y agoMany programmers have also become blind to all the conceptual baggage needed for conventional OOP programming. What the heck does "public static void main" mean?
- T_S_ 15y agoIt might be true that functional programming is difficult to learn for programmers not well versed in mathematics. My response to that is: Toughen up, princess. It's not that bad. To make an OO comparison: You didn't have to invent MVC (or any other design pattern) in order to use it. I don't have to know how to invent a monad to model the next 20 effects just to use the state monad today. FP gets its design patterns from many brilliant mathematicians and logicians. The pipeline to the math/logic world is wide open in FP. And you can just have a sip if you want.