I'm fairly new to Ethereum, and I'm still trying to grasp the potential uses. I keep seeing articles using encrypted instant messaging as a potential application. But, there is a problem with this: from what I understand, a contract will be executed by all of the nodes on the network. The time it takes to mine a new block is ~20 seconds. So doesn't this mean that a message can take up to 20 seconds between the time it's send and received? If this is true, I can see this being a problem for real-time web applications.
Theoretically, yes, code execution time is limited by the block time.
But on a practical level, gas costs and the block gas limit are what limit code execution time. Try writing a contract that takes many milliseconds and you will probably find that you have exceeded the block gas limit.
FYI the average block time is 15 seconds. Whisper is the messaging part of the Ethereum technology suite.
So doesn't this mean that a message can take up to 20 seconds between the time it's send and received?
It's worse! There is a variance between 3 s to more than 75s. I try to find out the shape of the distribution of the block time.