I'm a huge supporter of the open source movement. It's the best thing to come along since sliced bread. Many of the tools that I rely on to do my day to day work would not exist if it wasn't for the struggles of the open source movement. This doesn't change the fact that I feel the open source movement is flawed in more than one way; its battle is made more difficult by its very nature.
Enforcing the GPL
Regardless of the good intentions of the GPL there is really no way of forcing companies to abide by it. For example, Company A decides that they want to write a application, they first take a look at sourceforge.net and search for all the various applications that are available in the given category. Company A being lazy decides that its easier to extend Sourceforge Application B than write their own from scratch.
You may well say that even if Company A does this it will be apparent to anyone with 'know how' of decompiling/disassembling. This may well be true, but there are ways and means of getting around these particular problems as well. The same technologies that are used to protect compiled code against reverse engineers can be used to throw open source watchdogs off the trail.
Company A has just benefited from someone else's work, and proceeds to make a handsome profit selling their new product. The open source movement can rant and rave and even try and out market (unlikely without a budget), but at the end of the day they have no proof.
Handing out the source code, regardless of what license it is under is the equivalent of giving away the keys to the kingdom. Licenses have proven time and again that they don't work, and the p2p piracy that is so deeply dug into the internet now is the perfect example of license failure. Even more so the source code for an application, while it is possible to protect a compiled application using anti piracy technology, no such method can be employed to protect the source code of an application.
The open source development model has its benefits; one of the biggest arguments that Open Source Movement will throw at you is the fact that allowing open contribution enables projects to evolve at a much quicker rate. What I see is a lot of half finished projects, frustratingly close to complete and treading water for lack of developers. The major projects that are going forward are being driven both by larger organizations, and even companies that have an interest in utilizing said open source project for their own purposes. This is compounded by the fact that rather than getting together with a previous project developer to create a truly powerful tool, quite often a developer will start their own project from scratch and duplicate work that has previously been done.
To be fair the Open Source Movement has had some tremendous successes, that doesn't change the fact that it's flawed, it just means that some of the better developers are able to wade through the weaknesses and produce some world classes tools regardless.
The Misunderstanding of Open Source
Plenty of people flock to the open source movement under the mistaken impression that its free. Hell my first steps into the land of open source were made under this deep-seated misinterpretation, everybody is looking for something for nothing