It's interesting that this also seems to have factored into Richard Stallman's philosophy. Since he considered working on closed software unethical, and noted that he could always survive as a waiter, he felt he couldn't justify working on closed software based on the excuse that it was necessary for financial reasons.