At Qrimp, we use Open Source products in our software. We use Icons from YellowIcon
, we love FireFox
, and we've even used SharpDevelop
once or twice, so we recognize the benefits Open Source brings to all of us, but the product, that is, the Open Source, has a limited audience.
What the audience wants is not Open Source. The audience wants features, products, and software. Most users of Open Source software couldn't care less about the Source Code and even if they did, which I do, they don't have the time or the experience to enhance it. How many of those who use Firefox have ever written a line of code for it? How many of those who use Open Office dive into fix a bug or improve the usability? We haven't. We just don't have time. It's too difficult.
If we can limit the level of experience needed to enhance and distribute Open Source software to this lowest common denominator, we can greatly increase not only the audience of potential customers, but also the field of developers and users who can contribute ideas, enhancements, and labor to the movement.
Democracy and choice are good. We should all be allowed to develop in the language of our choice. Some of us speak multiple languages and some of us program in multiple languages. The diversity leads to a rich and engaging world and is awesome, but it might not be so productive. It takes time to translate from one language to another. It takes time to understand someone else's code, install development environments, make changes, recompile, and integrate your code with the core. If we were all to contribute to every piece of open source that benefits our lives, our computers would be bogged down with compilers, source code repositories, and databases and our brains would be full of algorithms, syntaxes, and constructs from countless programming languages. It's just too much. We are slowing ourselves down.
The way to fix the problems of Open Source is to enable the enhancement of Open Source projects without requiring those who wish to contribute to understand the source. We can't expect everyone to learn the language the product was developed in and we can't expect everyone to understand the code itself. Code is complex.
One of the worst jobs developers are thrown into is supporting someone else's code. Imagine a writer being asked to finish someone else's book or an entrepreneur finishing someone else's company. It's boring, monotonous and nearly impossible to get passionate about it. We need our own projects, we need the ability to develop our own solutions, all we need is a common language to communicate with everyone else who might be able to help us or be helped by the projects so dear to us and everyone who uses them.