I had an odd idea and I'm wondering why noone has throught of it. It's kinda underground... but I'll say it anyway (idea can be dangerous things!). Basically, I was thinking about why open source has nothing to fear from being made extinct by businesses: a business tries to kill a product by buying the company that makes it, or puts them out of business by cutting off their supply of profits. Open source doesn't rely on these things: it relies on people who like making cool things (and companies of people that like cool things). As such it can't be bought out, as you can't buy out something you give out for free and yet still have some measure of control over. So this is where businesses have struggled. Luckily for them, there is a way of stopping it: patents. File a patent and some open source bozo comes out with the same idea in their product: sue the pants off them! All of a sudden you've killed the product.
So. What can those OSS enthusiasts do?
Here's an idea: basically, what you do is make a product that is extensible (ala Firefox). Have a mechanism where you can build a file sharing mechanism into it that is totally decentralised (like Gnutella). Make your products so componentised and extensible that every bit of functionality can be installed with a click of a button (like Firefox's extensions). However, the catch is that the click of the button compiles the module from source. Then, make the components that have patents on them and test them, release them as an extension and never note who created the product, then release this into the Gnutella style file sharing network. Hook up the extension manager to the Gnutella network and have people download the extensions and also share it (you'd need a way of making them share extensions).
Why is this a good idea? Two reasons:
- The packages are all in source code. Anyone with knowledge can find bugs and release it as a different package after fixing the bugs.
- Once in the file sharing network, companies would find it impossible to track down the original author. Hence they can't sue them. If you have 20 million users, then they would have to sue each of the 20 millions users. They couldn't sue the original author of the highly extensible software package that brings it all together because they haven't done anything wrong. And they don't provide a service where people upload their files to a centralised file server.
There are some challenges here:
- a revision control system that could work over a distributed network. A distributed and decentralised CVS would be needed, if you will. This would be needed because otherwise you'd never know which revision to download (no revision numbers would work).
- the data would need to go over a well known port that isn't easy to block, like port 80. Otherwise network admins would work out ways of stopping this data from getting around the Internet.
- A way of signing code to make sure it isn't malicious and won't break underlying systems (like delete files, etc). I see that you would need some sort of sandbox to run it in. Don't know how you'd get around that one.
Anyway, that's my random thought. Seems wacky to me, and probably not doable: but imagine if it could be done? Say bye bye software patents! Basically, it would change the very face of the industry: if software patents are published fully and people can write extensions for existing software, but these extensions are dispersed widely and in source code where fixes and enhancements could be made anonymously: well, how are you going to enforce software patents?
The only ones who couldn't do these types of things are corporations, as they can't be seen to do dodgy or illegal things. Even then they may still be able to use patented software, as they haven't done anything wrong! But it would be a boon for consumers.