Thirdly, since we have agreed (

) that capitalism is the way to go, most certainly..I must be paid for my work. However, the trick lies in passing on this cost in an efficient manner to the user. To do this one must clearly identify the target group. If my program will help lay users use computers in an efficient way, then it must be priced accordingly. If the lay user wouldn't need, and probably not know to use certain power features (which naturally required a lot more effort to code), I can chop off these features without any harm to anyone. Though this is not something we like, but it is inevitable. Can you get a Chevrolet Optra for 1 lac? Obviously not. We object to high priced software, primarily because it takes nothing to create another copy. On the other hand, you'll need a lot of effort and money to create a replica of an Optra, that performs as well!!
Therefore, the corporate market, which can pay adequately for the services it uses, must act as the sponge for absorbing the impact that reducing the prices in the lay-user segment would have.
At the same time, there are developers in the early stages of their careers (read students) who only want to experiment and learn with various coding tools (for example), and not build software that would actually be distributed for commercial purposes. So, companies like..say..Microsoft could distribute coding tools and other tools for free, while tying up their product with whatever software that's built using these tools. So, when the programmer derives commercial benefit out of the software he builds using these tools, he will owe a certain pre-determined portion of the money that he earns to ..say.. Microsoft. By distributing this cost among all the copies sold, revenue can be upped, while reducing the burden on the end-user.
Well there may be certain concerns regarding misuse of the free coding tools. But these can be addressed, by adding a read-only signature of the coding tool used to the code written by the programmer. This signature/key will require all users to compulsorily register online b4 using the product. If this product is being distributed wiht the consent of the "Company that created the coding tool", then a key tagged with the unique Product ID will be generated, with which the user can start working on the product. OTOH, if this product is being distributed without the consent of the "Company that..." then the key can't be generated and hence the product can't be used. This will effectively kill piracy as well.
What we are, and should be talking about therefore, is "Reasonably priced software" - aka the middle path.