MapReduce explained
joelonsoftware.com
joelonsoftware.com
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.
And they said programmers have a tendency to make things overly complicated...
Spolsky was talking about the power of abstracting away for loops. Functional programming languages do this all the time, with primitives like map, fold, filter, etc. And this happens without any toll on the programmer's mental burden or the machine's performance.
http://www.youtube.com/results?search_query=Cluster+Computin...