

MapReduce for Idiots - coderdude
http://petewarden.typepad.com/searchbrowser/2010/01/mapreduce-for-idiots.html

======
antics
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.

~~~
vog
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.

~~~
antics
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.

------
rue
Notably, this is one use of Map/Reduce; it's a general processing pattern.

------
dools
But software patents are evil, and Google's mission is to not be evil ... So
we'e safe, right? Right?!

~~~
ma2rten
I guess. It would be a pretty stupid move of Google to sue any other company
over this, because they would lose a lot of respect from development
community.

~~~
kree10
I'd like to think so, but if a situation presented itself where it was a
choice between angering developers and angering shareholders, I wouldn't bet
against the shareholders.

~~~
steveklabnik
Eh, maybe for a different company.

Another part that plays into this is that you _have_ to patent something, or
someone else will. Google pretty much had to register a patent or face getting
pwnt someday.

~~~
RobertKohr
Yep, I think you hit the nail on the head.

You really have to do "defensive patenting" when you are this large or you
might face problems when another person patents a key technology your business
relies on.

I don't think google would ever pursue this patent against another company,
because it is doubtful it will stand up in court. As such it probably would
win a court trial if another company patented the tech, but it is much cheaper
to just patent it yourself, stick the patent in a drawer, and continue taking
over the world.

