One of my friend shared this article about how Facebook is now a leading open source contributor and how most of the web giants are encouraging open innovation. The article also mentioned about how this trickle down is helping the community in general. Though I largely agree to the points mentioned in the article, I think the author missed one main point.
It only makes sense to open source your changes rather than maintaining forks
Its a common practice for any start-up to go with free software tools. When you are experimenting lot of ideas, free software tools help you to quickly come up with prototypes which you can get it validated with potential customers. The teams can also work independently without having to deal with licensing costs and other agreements with proprietary software companies.
What I think the article missed to point out is that when companies start developing their infrastructure around free software tools, it becomes a necessity for them to contribute back their code to the parent repository. Else maintaining and merging different code bases as and when new released for the particular project is released becomes very time consuming defeating the whole purpose of using free software tools. Hence I think it is not that Facebook and Google want to open source their technologies(Definitely, it can be that they want to contribute to the community), but the choice of becoming free software users ensures that you also contribute your changes back to the repository.
For example, we know that Google dumped its Google Compute Engine Linux and shifted to Debian as per this report.