Friday, August 04, 2006

Scalability by using a lot of computers

Every wondered how they get web searches to come back so fast? Obviously, by using a lot of computers. But,
Without understanding functional programming, you can't invent MapReduce, the algorithm that makes Google so massively scalable.
says Joel Spolsky, while going on to explain what functional programming is. To simplify, what he says is that if you are processing data by looping through it, then different computers can loop through different sections of the data all at the same time. This is the vital next step:
By abstracting away the very concept of looping, you can implement looping any way you want, including implementing it in a way that scales nicely with extra hardware.
What's more:
The very fact that Google invented MapReduce, and Microsoft didn't, says something about why Microsoft is still playing catch up trying to get basic search features to work, while Google has moved on to the next problem: building Skynet^H^H^H^H^H^H the world's largest massively parallel supercomputer. I don't think Microsoft completely understands just how far behind they are on that wave.
Well, Microsoft are further ahead than just basic search, but they are certainly lagging. He ends up by pointing out that too many Computer Science students are not taught this part of their subject. Is this correct? I was just such a Computer Science student once, and there was a module on functional programming module available, but if I thought about it at all back then, I saw it as a branch of the subject with not much application to the real world. As it turns out, I was wrong.


Post a Comment

<< Home