About Open Source software
Quality
If a software is made Open Source this does not mean that it is of superior quality. Open Source doesn't mean better quality.
I have seen many Open Source softwares from the inside, some are very good, some are very bad.
Having lots of Open Source projects available today is just another cause of confusion because the major part of that projects are not enough good.
Price and licenses
I agree about the fact that companies that buy software need to have the source code of a big software to be able to modify it. Of course the source code may be sold. The companies can buy the compiled programs, or the source code. The price of the source code may vary, depending on many factors: first of all the source code quality, then the software capabilities, the license terms and so on.
To make a good software a large amount of work is needed, it may be easy work of source restyling and checking or deep design work, anyways the work is required, that's mean that someone has to do that work, and that someone maybe needs to have an income for this work.
So the equation "good source code for free" is impossible in practice.
On the collaboration development system
Someone says that the Open Source system is good because it adopts the collaboration way of development, where many individuals collaborate on the same project.
Even this is an illusion, because the software does not grow by itself, and the problems do not solve by their own. There must be someone, a single individual or a small group of individuals, that really knows the software which is under development. When this individual or small group of individuals is missing the project starts to become disordered, and its evolution stops. So the real forces in a Open Source project are those individuals which are more involved in the project, all the rest is just curious people that look at some piece of the code.
Open Source is not the solution for reducing software development cost. A good software can be built only with adequate investments, and the proof of this is that only the companies which have invested money have gained incomes.
Open Source programming libraries
By the name Open Source you can think that Open Source projects are a big source of programming libraries, i.e. pieces that are useful to make programs, but having the source code of a program available doesn't mean that it can be reused easily. Most of the source code available on the net in Open Source projects is buggy, incomplete, unsatisfactory. Even when the code is correct and does not make errors at runtime, it is not organized to be a programming library, it is not enough documented and has its own style which is different from the one you are using.
Many Open Source softwares may be something to read to have some hints on how a certain problem can be solved, but the source code is quite never good to be inserted in a project.
Programming libraries are a kind of software products, they need good design, and work for make them uniform and coherent.
Open Source developers simply aren't interested in providing a good programming library. Furthermore they seems to be uninterested in providing the source code at all. This is the paradox, while they make the projects available for free they at the same time do not make a complete product.
On concrete defects of Open Source projects
Most of the Open Source projects you can see in the net are incomplete. If you read a piece of code you see that it is like a work in progress, and it is never complete. Each piece of code is written just to make a trial of what it has to do, and you find always something that is missing. There are lots of incoherences among the different files of the project, and of course you can find files composed by different people with different styles.
The hidden parts of Open Source projects
Most so called Open Source projects are Open Source only to a certain extent. If you go deep in the code you often find some references to some files or packages that are not available as Open Source, and often they are not available at all, or only at excessive price.