Too much Free Software? And you thought people were complaining about a lack of applications which makes them stick with Microsoft Windows. Well, they're right. On Linux, there's no decent movie player and no working sound recorder (like the one in Windows 95) shipped as the default by GNOME, but hey, there are more than 385 text editors! Choice is good, but it's frustrating when none of the alternatives works properly.
We have a lot of Free Software alternatives, but because there are so many, they usually remain at a low level of features, as Free Software developers are a limited resource. There are exceptions (GIMP), but they usually have major companies behind them (Open Office, Mozilla) which know what the users want and what to ask from their developers.
We also have a natural selection process which will result in the best software in time. In a lot of time. This would be the best selection if all the software in the world would be Free, but it's not, and we are running out of time. The legality of using some DVD players under Linux is unclear, people are put in prison for writing useful software, and Microsoft makes Palladium and has more than enough money to make it required by law. Soon, we won't even be able to borrow books anymore. Many Web sites require Microsoft Internet Explorer to be usable, including some which are running critical bank and government services.
In order to avoid this, we have to get more users to use Free Software. Non-Internet Explorer users can be safely ignored when they are less than 2% on the Web, but not when they're 50%. So how do we get more people using Free Software? Preaching about it doesn't work with the majority, which has been so dumbed down by the importance of money as not to care for liberty anymore. We could try making Free Software much better than the standard desktop operating system used today, Microsoft Windows, and for this we have to stand united.
As Craig Mundie says, the OSS development model leads to a strong possibility of unhealthy "forking" of a code base, resulting in the development of multiple incompatible versions of programs, weakened interoperability, product instability, and hindering [of] businesses' ability to strategically plan for the future. Microsoft trumpets the lack of choice on their platform as integrated solutions, but that's also what the majority of business and people want (less tech support costs and more advice for newbies who now quite often get "Hmm, I don't know, I don't use that, I use this..."). Choice should not only be limited to two or three options, but all of them should also have a common code base. Some examples:
A good example is Mozilla. There are lots of browsers available for Linux today, but most of them are based on Mozilla. Therefore, they work.
Linux is already winning on the server side. Why? It works! You have a Web server (even named "httpd" on Red Hat), two databases which cover all your needs from low to high end (MySQL and PostgreSQL), three mail servers (Sendmail, qmail, and Postfix), a name server, etc. You don't have "Yan -- Yet Another Nameserver" or "Ans -- Ans's Not Sendmail".
Please stop developing and using some obscure application when there are better alternatives. Not happy with them? Fix what's wrong, or if everything looks wrong, work at separating the functionality into a UI-independent library, then develop your own graphical interface. Reusing and improving existing code, not making your own, is the way. Drop the "not made here" syndrome and your 15 minutes of fame on freshmeat when making the announcement, and unite with the rest of the community. Starting a new project is a good way to learn to develop software, but you can also learn by doing bugfixing, unit testing, and development of new features and optimizations of existing applications. Sourceforge should start removing projects with less than 1% activity for the last six months (every week, they could propose several projects to be removed, and allow a month for the activity to increase).
Another problem is that major functionality is quite often rewritten from scratch. It's not unusual to see freshmeat announcements like "What's new: completely rewritten". Don't throw away all tested and working code and documentation to start all over again, introducing new bugs which annoy users and waste time. So what if there's a lot of refactoring? It's not bad if it doesn't refactor everything at once. Instead of rewriting everything, split the existing code into modules, make unit tests for them, and, after everything works as before, start rewriting/improving one module at a time. Unit tests are important, and the many eyeballs shouldn't be preferred to these.
Here's looking forward to Linux on the desktop!