Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

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] 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.



Note 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.


I 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.


Although 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.


You 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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: