In Michael Swan's Practical English Usage I come across the sentences:
We can use the future perfect to say that something will be completed, finished or achieved by a certain time.
and
The future progressive can be used to say that something will be in progress at a particular time.
Why should we use by in the first case and at at the second? Can we replace it with each other?