programmation sous Linux

 

Il existe beaucoup d'outils pour programmer sous Linux. Cette page ne traite que de la programmation C++ pour l'interface KDE, avec l'outil KDevelop. La version de KDevelop présentée ici est la version 0.3. C'est donc une version de développement, qui ne comporte pas encore toutes les fonctionnalités, et qui peut parfois être instable. Malgré tout, c'est un excellent outils qui propose beaucoup de fonctionnalités intéressantes.

Comme nous le voyons sur la photo ci dessous, KDevelop propose, comme Visual C++, un assistant nommé Application Wizard chargé de créer le squelette de l'application. Ainsi, le développeur n'a pas à chaque fois qu'il écrit un programme, à réécrire le même code commun à toutes les application, qui sert par exemple à créer la fenêtre principale de l'application. Il propose plusieurs types d'applications: texte, graphique, avec ou sans barres d'outils, etc...

KDevelop propose des fonctionnalités, et une interface très proche de cette de Visual C++ sous Windows, et utilise la technologie orientée objet. Les programmeurs Windows utilisant Visual C++ ne seront donc pas perdus en passant à la programmation Linux/KDE avec KDevelop.

En tant qu'ancien développeur sous Visual C++, j'ai été surpris par la facilité et les possibilités de la programmation sous KDE. En effet, KDE étant né après Windows, il prend en charge beaucoup de fonctionnalités, que le développeur doit programmer lui même sous windows. C'est le cas avec la richesse de l'interface graphique qu'il est possible de construire. En plus, sous Linux, le développeur a a disposition de nombreuses bibliothèques comme Qt, GTK+, qui servent à lui faciliter la vie, ce qu'on trouve difficilement sous Windows. Par exemple, sous Linux, il vous suffit de récupérer une bibliothèque de gestion des formats graphiques (GIF, JPG, ...) pour pouvoir les gérer dans vous programmes. Windows ne gère que le BMP et à vous de vous débrouiller pour le reste.

Après la création et la compilation de l'application produite par cet assistant, on obtient déjà une application qui peut fonctionner, qui a l'allure de la capture ci contre:

L'application est accompagnée de menus déroulants, de barres d'outils, et des principales commandes.

La photo montre que le programme dispose d'une interface assez perfectionnée, comme des icones à côté des commandes du menu, qui demanent un travail supplémentaire aux programmeurs lorsqu'ils programment sous Windows. En effet, Visual C++ ne propose pas ce type d'interface, et c'est au programmeur d'écrire les centaines de lignes de codes nécessaire pour obtenir ce type d'interface.

L'interface de KDevelop est très pratique. En effet, on peut voir qu'on dispose à gauche d'une arborescence du programme, qui nous montre les différentes classes et fonctions, et qui nous permet d'y accéder directement. L'éditeur de code dispose d'une syntaxe colorée. Les menus proposent beaucoup de fonctionnalités, dont la compilation du progamme, son exécution, le lancement du débogueur, etc...

Une aide est disponible. Pour l'obtenir, il suffit de cliquer sur un onglet. Elle propose notament la description de toutes les classes de Qt, de KDE, des manuels de C++, etc... Cepdenant, il faut noter que toutes les rubriques de l'aide ne sont pas disponibles dans cette version de KDevelop.


Voici maintenant un exemple de code source de programme KDevelop qui montre la syntaxe de ce langage:

//************************** kdraw.h **************************

#include <kapp.h>
#include <ktopwidget.h>

class KMainWindow : public KTopLevelWidge
{
Q_OBJECT;
      public:
KMainWindow();
};

//************************* kdraw.cpp *************************

#include "kdraw.moc"

KMainWindow::KMainWindow()
{
}

//************************* main.cpp **************************

#include "kdraw.h"

int main(int argc, char **argv)
{
     KApplication app( argc, argv, "KDraw" );
     KMainWindow window;
     window.show();
     app.setMainWidget(&window);
     return app.exec();
}

Cet exemple crée simplement la fenêtre principale d'une application. Pour avoir d'autres exemples de programmes KDE, vous pouvez télécharger des exemples de programmes KDE. Des documentations sont aussi disponibles. Pour cela, vous pouvez visiter des sites consacrés au développement KDE.

 

La traduction des applications sous Linux:

Sous Linux, l'internationalisation des programmes est grandement facilitée. En effet, des modules permettent de faire facilement évoluer un programme qui est déjà traduit dans plusieurs langues. La traduction est stockée dans un fichier, ce qui fait qu'il n'est pas nécessaire de récupérer une autre version du programme exécutable pour avoir la traduction. Le même exécutable peut gérer toutes les langues, à partir du moment où le fichier de traduction est présent. Pour mettre en place ce système, il suffit de remplacer les chaînes de caractères par l'appel à une fonction comme par exemple:

sprintf (szMessage, i18n("Ouverture du fichier %s"), szFile);

Ainsi, dans cet exemple, la fonction i18n (pour internationalisation) cherche une traduction de la chaîne "Ouverture du fichier %s" dans la langue de l'utilisateur. S'il ne la trouve pas, la chaîne en anglais sera affichée. De plus, un traducteur français qui ne sait pas programmer peut très bien traduire un projet anglais, car il n'a pas à comprendre le code source, la liste des chaînes à traduire étant stockée dans un fichier spécial.

Lorsque le développeur, qui avait déjà traduit la version 1 de son programme, désire traduire la version 2, il n'est pas obligé de recommencer la traduction à partir de zéro. En effet, il lui suffit, grâce à l'aide ce certains outils, de traduire les chaînes qui ont été ajoutées dans la version 2. Toute la traduction des chaînes déjà présentes dans la version 1 du programme est conservée.

Ce système peut être comparé aux applications du mode Windows: Quand vous avez installé la version anglaise de Microsoft Office 97, et que vous voulez avoir la version française, vous devez avoir le CD complet d'installation de cette version.