Q: But community open source software is distributed for free. How can working on such a project be lucrative for a programmer?
You can observe this as a strong trend: People work on company time, full time, for something that is open source, under a license that allows free distribution. So the company that pays the developer is not making any money directly off of that open source component.
Stallman Urges Users to Upgrade to GPLv3
Ten Leading Open Source Innovators
Top Five Open Source Business Models You Never Heard Of
GPLv2 or GPLv3?: Inside the Debate|
So PostgreSQL is a good example. Theres a company, EnterpriseDB. They provide all kinds of additional enterprise readiness features around the open source PostgreSQL community. Of the core team of 7 Commiters, EnterpriseDB employs 3, who work full time on the community product, and thereby benefit the community and not directly EnterpriseDB the company.
However, because they work at this company, they have the knowledge of how to do proprietary extensions, and to make sure that nothing happens to the PostgreSQL community product that would be strongly against the desire of that company. So the company ensures some influence on the community product.
Its never control its important that these are much more subtle influences and discussions that are going on, and in some sense are transparent and open and fair to the community. But because this company has a stake, and is making a valuable contribution, the community recognizes that it should not act against this company in a willful or bad way.
So its a give and take, and I think its well understood in non-trivial open source projects.
Q: If you were to advise a young person to choose a career direction based on income potential, would you advise them to become an open source or a closed source programmer?
Its not decidable, its not the right criteria for a choice. [Instead] the factors are how significant that piece of software is that youre working on, and then, for yourself, at what point in time do you come in.
"If you can come in early and you get a Commiters position easily, always go for the open source. But if youre joining a very successful commercial proprietary company and why not? it could pay well the knowledge you have could be worth a fair amount to that company.
You need to look at the significance of the software I think that probably trumps most of the things. And then, your chances of getting a powerful position with that software or project of company is the other major deciding factor.