3 ms·
A lot of people talk about having an "epiphany" when they learned functional programming. I never put much stock in that until MapReduce really sunk in. Not tha
by antics 16y ago
A lot of people talk about having an "epiphany" when they learned functional programming. I never put much stock in that until MapReduce really sunk in. Not that I'm a fanboy -- I still do almost everything in Java or Python -- but it was certainly one of those "aha" moments.
I wish this article was around when I started trying to figure it out. If you do actually get through it (and it's eminently accessible), it makes Spolsky's article on functional paradigm and MapReduce [http://www.joelonsoftware.com/items/2006/08/01.html http://www.joelonsoftware.com/items/2006/08/01.html] a lot easier to understand. And it's my bet that if you get around to reading both, you'll thank yourself for making yourself do it. Really.
Highly recommended.
- antics 16y agoAlthough it should be noted that it is pretty ironic that Joel wrote that post in response to Java being taught so pervasively at schools, because Hadoop is implemented primarily in ... yup, Java.
- vog 16y agoNote that Python is also a functional language, in the sense that it has almost all elements and features that allow you to do functional programming. [1] So if you do a lot of stuff in Python, chances are good that you're already doing functional programming to some extent, without having noticed. [1] The most annoying deficiency of Python is the missing implementation of proper local variables in sub functions, which means that Python has no real closures. Recent Python versions try to fix that via the "nonlocal" keyword, but that's not a really intuitive fix, compared to how this issue is solved in other functional languages like Haskell or LISP.
- antics 16y agoI am aware. But I appreciate the gesture! When I said that I'm not a fanboy, I didn't mean to say that I don't use functional languages, but rather, that I don't use purely functional languages, and certainly purely functional languages exclusively.
- RobertKohr 16y agoYou are right, reading joel's piece afterwards is super easy. It probably helps I have been doing a lot of node.js programming recently and so the functional stuff is kinda mundane now.