Articles / Too Much Free Software

Too Much Free Software

The plethora of Free Software applications available today, none working perfectly, is a problem which stands in the way of major adoption of Linux on the desktop. In order to conquer the desktop, we have to stand united.

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:

Desktop Environment.
GNOME and KDE for the majority, Blackbox and Window Maker for modest hardware. The rest are simply wasted time, both for the developers and for users who try them and then delete them in disgust. GNOME and KDE should share more than a window manager specification, such as using GConf for storing preferences, a virtual file system like GnomeVFS, and aRts instead of esd (even if it's through GStreamer). Note that these are underlying technologies; they are not visible to the user, except that everything always works (saving preferences, browsing the network, and playing songs).
Graphical Toolkits
GTK+. That's it. Qt still has licensing problems, being non-Free for commercial applications. Motif, Tcl/Tk, wxWindows? Die! What they have over GTK+ doesn't compare with GTK+'s advantages over them, so instead of religiously sticking with them, help implement those missing features in GTK+. Imagine the joy of commercial software makers who might want to release Linux versions of their software learning only about GTK+ (which they could use for the Windows versions, too) instead of what they hear now. ("Well, there's GTK+, Qt, wxWindows, and others; how about starting with a study of the advantages and disadvantages of each?")
Office suites
Open Office has the most features, but since it requires a lot of resources, there are also GNOME and KDE offices. That should be all the office suites (LyX is in another category). These suites already have the majority of users, and that means more features, fewer bugs, and the rest of the world (e.g., Gobe) ignored, which is great. What's not so great is that there's nothing common between them (except glibc). They should all at least use the Open Office format (which is proposed as a standard) for file saving, and have common filters from/to other formats.
I don't know exactly what to write here, but it's bad. Hopefully, ALSA will be the only API to access sound devices, OSS will disappear, and maybe there will be only one sound server used by default on all distributions. The API to interface with the sound server will probably still vary (SDL, GStreamer, OpenAL).
Instant messaging
There's Gaim, GnomeICU, Licq, and many more. Gaim has a plugin system which allows the use of all major protocols and, for example, sending messages encrypted with GnuPG (a feature planned to be offered by Yahoo! in an "enterprise" version of their client). Gaim should separate all messaging functionality in UI-independent libraries which could be easily used by other applications (the rest of the instant messaging clients available today, and even your own application developed for the company's internal use).

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!


Recent comments

18 Oct 2004 09:54 Avatar fraktalisman

Freedom of Choice vs. Trouble of Choice
Although I much appreciate freedom of choice and I don't like certain monopolies like M$, the author has a point. Quite recently I read a newspaper article about consumers' choice in supermarkets and why discounters have become so popular. There people can fulfil their basic needs without the trouble of choice.

A similar development can be seen on the web. There used to be many different search engines, various online bookshops and auction services etc. There used to be many freemail services. Now there is fewer choice, the big names have turned into professionalized companies or communities respectively, and they have become more popular among the general public. Ten years ago, geeks used the internet, mostly white american guys with a college degree. Now "everyone" uses the web, and some things have become quite common and thus easy to learn. Email addresses like are one example. Or someone asking me "How do I send mail attachments and how do I make my computer more secure?" - "You have Windows XP and Outlook Express?" - "Yes" - "OK, just read this computerbild article and follow the recommendations".

And if Linux is to be popular as a desktop computer system, it has to move into that direction. The reason why Linux is cool isn't that it's a complex toy for geeks, but it's cool because it's a flexible system to fit different needs, and because it's open source.

Let there be lots of software, yes! Where needed!

As a web designer, I don't need four or five different web browsers. One reliable, scalable, cross-platform browser would be just perfect, with IE's capabilities but more security and configuration options.

But if you need a specialized browser for a special purpose, go ahead and code it.

Just the same goes for all other kinds of software. More things like GIMP and Mozilla might make Linux popular for good reasons.

17 May 2004 00:23 Avatar bootswork

and he's going to fix this by...
Starting yet another distribution (! Not contributing a Romanian translation for Fedora or Debian or anything, but adding yet another set of bugs, security announcements, and complexity.

I think that's pretty damn funny.

Luckily for our author, the GPL gives him the freedom to say one thing and do another.

24 Apr 2004 02:41 Avatar bigzone

Re: Too much free software, that's right, most of it crap

> The author is correct that there is a
> need for COMMON BASE for the application
> to compete with the current dominant
> Windows. It is true that desktop domain
> cannot be captured until there is
> stylish and easy interface, good sound
> and vidio system. Programmers need to
> converge their efforts to integrate
> their work to produce robust
> applications.
> I DO NOT AGREE THAT software in
> freshment with less than 1% activity
> should be removed. LET PROGRAMMERS GROW.

GNU/Linux is never going to compete with Windows on the desktop. It's a UNIX clone, and no matter how many pretty GUI's you put on top of it, it's still not going to be a user-friendly desktop OS. And if someone did completely rework the system for desktop use ala OSX, as someone said before, it would no longer be the GNU/Linux that we all know and love. It would be a lame hybrid OS, and personally, I don't want to use an integrated Windows-like system, I want to use UNIX.

There is a "common base" for 99% of Linux distributions - it's called GNU. It's very robust. Many, many developers have "converged their efforts" to make it so, and have been doing so since before Windows 95 ever entered the public conciousness. If you want to know why it hasn't dominated the desktop market, look no further than the fact that it's a UNIX clone.

OSX "works" because it's users don't want UNIX - they want a user-friendly hand-holding desktop OS with a command line. That's what OSX is, and that's what GNU/Linux will never be, because it's UNIX.

04 Jan 2004 13:21 Avatar enorbet1

Too Much (Bad) Software etc etc etc
As soon as I saw the forking directions that this thread exploded into I hesitated to comment, but then decided that perhaps a return to the overall theme and a move away from the specifics that begin such diversion, might actually be worthwhile to those who count most to me. They are at the extremes having a common effect, which is keeping an alternative OS growing and improving. They are at the most obvious extreme, the developers to whom I am greatly in debt and admire enormously, which occassionally includes me when I write or sufficiently alter an app to have something truly unique, special, and of specific value to me. On the other extreme is the newbie ( at Linux, if you aren't a newbie at something you are learning nothing ) and the "fence-rider" who is thinking of trying out Linux.

The last category is important to me because they increase demand which results in new hardware support as only one example of something that is very important to me. That demand is also beginning to translate into generating dollars ( witness Sun's amazing coup in China - 200 million plus desktops in one sweet deal virtually insuring Linux will be a contender for years just on it's own merit let alone the fire that ignites under developers ) all because Linux is beginning to be taken seriously. Despite some real specifics of areas in which Linux lacks or has too much duplication ( eg text editors ), overall Linux has improved greatly and will obviously grow into areas where it simply has the advantage. Which WM you choose makes little difference in this regard.

One good example is in multimedia production. I have seen that Linux is gaining serious ground in both serious/professional video and sound recording/editing, with the greatest gains so far being in audio work, simply because of low latency. There are other advantages to Linux that count in this area, like the ability to customize freely and extensively. If one was restricted from modifying tape recorders, multi-track would have never have become a reality. This is a huge advantage to Linux but low latency, the effective response time of controls, is enough all on it's own. Because I want to get away from specifics as soon as possible and get to the overall vision that Linux has improved and will continue to improve, despite the original poster's "complaints" ( which did not give sufficient "propers" imho to important events such as nVidia's excellent drivers , their existence at all as well as their frequent updating and superb quality as well as it's effect on "the community", which is perhaps the reason he thinks Linux does not have a decent media player since in my case, an nVidia user, both MPlayer and Xine keeps up, if not soundly defeats, WMP ) and this is without any "community view" or rules, dictums, policies, whatever you wish to call his request for some "guiding light" under which to organize.

Fact is, OSS and GPL works and "Cathedral and the Bazaar" thinking is winning out over "Man-Month Myth" thinking to the extent that not only is Linux doing exactly as it should, improving while finding niches that satisfy specific needs in a wide diversity, but also to the extent that nods are being given to the whole concept of the Open Source Concept in the mainstream press for example because it has become successful in other fields such as the politics of Democracy. One example, is Dean's adoption of "open sourcing" via web contest for his Presidential campaign slogan ( the winner being "Because Democracy should not be a spectator sport" , IMHO an excellent raison d'etre for running for office as well as drumming up voters and votes, regardless of my opinion of Dean as a candidate ) which has even stimulated the thought process of just how far can and should this line of thinking go in a real democracy in terms of "getting one's finger on the pulse" if not actually going quantum leaps further into more intensely pure democratic thnking and processes.

The bottom line is that Networking is better than standing alone and Linux and Linux people network better and it will win what it will win and lose what it will lose, as will MicroSoft, based on those fundamental differences in both the OSes and the processes that create them and the environment in which they operate. What the original poster is calling for is happening anyway, but within niches like Red Hat ( for enterprise ) and Xandros ( for the common man desktop ). That it doesn't occur everywhere in the whole Linux theatre is both healthy and desirable, since having room for that breadth or not ( M$ isolationism will make or break it, and so it will go with Linux and any other project/endeavor ) determines it's ability to improvise, adapt and prevail. It is built in to it's design philosophy and evolution has proven that goal-directed strategy is not a necessity for the development of complex, interactive systems of a high order of intelligence, stability, power and longevity.

Sold on SlackWare

30 Nov 2003 08:48 Avatar swine1

Hammer and saw
The things I need in software are stability, ease of use and transparency. (I like to know exactly what my system is doing). I use linux most of the time for whatever. and if linux doesn't have the tool that is needed, then I turn to windows. Both have stability in most cases and You have to admit that windows wins as far as ease of use goes, but using "windows" and "transparency" in the same sentence is akin to finding a hockey player with front teeth.(Canadian, eh!)
What I'm trying to say is that both systems are tools, and they are different tools that can do different things. I cant bring myself to dislike a tool because of who makes it. And I'm not going to use a hammer to saw wood.
The greatest thing about linux is the zillions of people that work on it and improve it every day and yes sometimes distributions include too many of the same type of program, but I think that over time software evolution will win out and only the strong will survive.
Windows, on the other hand is money based, not pride based and so programs that are hard to use and dont work properly will be discarded as newer, easier to use programs are created.
Both will evolve, and both will be used. After reading most of the comments I've come to the conclusion that windows bashing is a sensless waste of time, and makes the basher look goofy. Let us rejoice in the fact that were all not still stuck with the trs80's and commodore64's of yesteryear!
Keep your toolbox full!
(whew, not bad for only one cup of coffee)


Project Spotlight

Kigo Video Converter Ultimate for Mac

A tool for converting and editing videos.


Project Spotlight


An efficient tagger for MP3, Ogg/Vorbis, and FLAC files.