- - -
A counter argument is that it's considered "better" to bring the computation to the data than the data to the computation: ie, make the server calculate everything and serve it to a dumb client, because:
1) the server is more powerful than the client
2) one never knows what the client is capable of (the developers don't control the clients), there are many clients and just one server
3) usually, any given calculation only uses part of the data, so if the server computes and sends the results, it makes for smaller data transfers
There is however a big counter-counter-argument: I pay for the server, you pay for the client. When there are many clients that ask for results that are not easily cacheable, I think it can be much simpler to just have a dumb server that serves data, and compute on the client.