For the company:
* less office space expense
* bigger talent pool
* low cost benefit
* increased documentation
* encourages the trend towards outcome based management (as opposed to butts in seats)
For the programmer: * more control over their work environment
* more control over their time
* no "commuting" subsidy for their employers
* arbitrage payscales and standard of living
* working vacations become possible
There are some downsides in terms of increased coordination costs and I have some friends that will never get to work remote because of security concerns, but for most developers this trend is fantastic.