Construction workers are traditionally resources, They can be quickly replaced. With software this becomes tricky. You need to spend considerable time, amount and energy to find the correct replacement who can drive it with same efficiency. The 2 reasons why companies like Google, Facebook etc pay so much is because:
1) They want to attract the top talent, top 1%, 5% may be.
2) They want to keep people happy so that the key people working on most important features don't leave the company.
And this is where the supply side of the equation comes into play. Many people can build the road and there shouldn't be any differentiation in how it is built (assuming they have common engineering standards). Thus, the supply is almost perfectly competitive causing low wages.
However, there are infinite ways a developer can make something. 1 developer can make design a system that can save/make their company millions that most other developers would miss. The supply side of developers is more like a monopolistically competitive market. Thus, they can extract some of those savings/profits in wages.