

MapReduce explained - huherto
http://www.joelonsoftware.com/items/2006/08/01.html

======
xirium
Java functors are ugly. I've seen an example where every column of a database
had a corresponding class. This facillatated the use of functors.

Java has another example to teach. JavaBeans can be called transparently via
remote procedure calls. When developers discover this feature, they write
_everything_ as JavaBeans on the assumption that it increases scalability.
Instead, it leads to obscene implementations with trivial operations requiring
hundreds of remote calls within a server cluster. Understandably, this
adversely affects performance.

So, don't prematurely optimise. Use map and reduce sparingly. You wouldn't use
RPC to make a string uppercase. Likewise, you wouldn't sum an array of 10
integers using reduce.

~~~
marcus
Of course you wouldn't uppercase a string using RPC that's what you have map
reduce for... split that string into chars send each node a single char to
uppercase and combine the results you get back.

And they said programmers have a tendency to make things overly complicated...

~~~
huherto
As one my teachers used to say: "It is better to use a bad language well than
a good language badly" The blame is not so much the language but the
programmers.

~~~
BrandonM
This is a great insight, one that I can unequivocally agree with, and it led
me to an insight of my own. Modern-day teachers have the cause-and-effect
backwards. Instead of focusing on improving the quality of the programmers,
they are focusing on developing a language which is impossible to use
incorrectly, no matter how bad that language is. Java can certainly be seen as
a step in this direction.

------
andreyf
A more in-depth look at the same stuff:

[http://www.youtube.com/results?search_query=Cluster+Computin...](http://www.youtube.com/results?search_query=Cluster+Computing+and+MapReduce+Lecture&search_type=)

------
tzury
The most interesting thing in my opinion is that MapReduce implementations has
been made with c++ (Google) and Java (Hadoop/Yahoo). And not with a functional
programming language.

------
tyler
Theres a rather good explanation of MapReduce in the book "Beautiful Code".
(Its just a rather good book, period.)

~~~
gregwebs
I think the book is very hit or miss from chapter to chapter.

