


What about Open Source Software (OSS) usability?
- OSS is sometimes software developed from programmers for other programmers, so with emphasis on functionalities and performance, rather than on usability.
- But something is changing and usability importance grows more and more day after day (ex. OpenOffice)
- Meetings that focus on OSS usability and on how it can be important to increase adoption of free technologies are more and more frequent
- However, not so much has been done till now…
It’s now clear that it’s necessary to improve OSS usability aspects, but what we have to work on?
The aspects on which it’s possible to work to improve usability can be various and on different fields, the choice is up to you, to your skills and to your interests:
- Operating System
- Applications
- Frontends and GUIs for existing ”command line” applications
- Configuration files for existing applications
- Foreign languages translation
You have two possibilities:
1) Start a new project: if you think to develop a software that does something which no other software does (or does but in a bad way), start your project. A new project could also be a GUI for a program which works only from command line.
2) Give your help to an already existent project: since there are already many projects which are still ”work in progress”, or simply which could be improved, maybe it is more worth to help an already existent project than to start a new one.
Some words if you want to develop for the Operating System (you are mad or you have really good skills
):
Simply forget Windows and everything related to Microsoft, since Microsoft != OSS, so all the software is closed-source and you
can neither see nor work on it With Apple Mac OS X, you have some possibilities to work on Darwin, the Operating System on which Mac OS X is based, since it’s open source (there are really nice projects, like PureDarwin, GNU-Darwin, Fink and MacPorts).
The best choice could be GNU/Linux, completely free and open-source, so if you want to help development you’re welcome Anyway, working on the Operating System doesn’t necessarily mean working on the kernel or on the lowest layers, you could
work on higher layers. Configuration files and translation in foreign languages don’t need any further explanation. Creation of new (and usable) applications, modifications to existing applications, creation of frontends, all of them involve development,
not only for the code, but also for the graphical interface.
Tools of many types and different difficulties:
- Text editors + compilers (for example Emacs + gcc), just the things you really need
- IDEs (for example Eclipse, Anjuta, Kdevelop, Code::Blocks, NetBeans, etc.), they will help you with syntax highliting, auto-completion, automatic indentation and by automatically calling compilers and debuggers
If you want to develop usable applications you have to care about GUI (Graphical User Interface) development:
Importance of GUIs
- GUI development is crucial for usability;
- You can make simple a not user-friendly application by developing a good GUI;
- Usability of your application can change a lot depending on the GUI;
- Some ”difficult” applications with lots of parameters can present more GUIs, usually with labels ”simple” and ”advanced”;
How to develop a GUI?
- You have to use graphical libraries
- They contain functions useful to create the graphical interface with the widgets present in it (buttons, checkboxes, textboxes, etc.);
- You can use them while writing your code, some IDEs have a visual approach for GUIs, allowing you to ”design” your GUI and helping you in writing the realted code;
- There are lots of graphical libraries and toolkitsSo we will concentrate on this aspect and see the various alternatives, of course the open source ones.
- In particular, we will deal with the case in which you have to develop applications and GUIs for Linux
- Since open-source means also multi-platform, we will see also some toolkits that make this aspect possible
Before starting :
The following part is important in that it presents the various alternatives among which you can choose to develop your
program. Remember that:
- The choice is completely up to you if you start a new project;
- If you’re working on a already existent project you usually have to follow the maintainer’s directions and continue his work using the same tools he used;
GTK+ and QT libraries
The most famous graphical libraries are GTK+ and QT, on which are based respectively Gnome and KDE desktop environments. GTK+ are C librairies, while QT are C++. GTK+ or QT? The choice is up to you.
Once many people said QT were simpler to handle and were better documented than GTK, but they were not so free as GTK, since the situation of their license was more complicated. However now Trolltech (QT producer) was bought by Nokia, that released it with LGPL, the same license used by GTK. New QT4 seem to look better if used in a ”non-native” system and seem to have improved their ”cross-platforms” abilities. The question is open on the web, you can look here, anyway, you must have the libraries installed in your system, if you use Gnome you have already Gtk, while if you use KDE you have already QT libraries, but you might have to install other packages for development (on GTK/QT websites you can find the latest sources that have to be compiled on your system, but usually there are packages on your distribution that make this step a lot easier) .
You could write your code using these libraries in different ways:
■ Write directly in C/C++: this choice will give you control on every aspect, but in the same time it could be quite difficult
■ Use one of the existent bindings, which allow you to write your code in other simpler languages, such as Python, Perl, PHP, Java, Ruby on Rails, Ada, etc.
■ Use ”layout designers” (for example Glade for GTK+ libraries or QT designer for QT libraries), which allow you to design easily the GUI of the program
Leggi anche :


You may be the one to comment first. Please leave your message below.








