Meniu

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.

Sound

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!

John Doe

Articole publicate de la contributori ce nu detin un cont pe gnulinux.ro. Continutul este verificat sumar, iar raspunderea apartine contributorilor.
  • | 340 articole

Nici un comentariu inca. Fii primul!
  • powered by Verysign