Logiciel de d�veloppement ind�pendant de la plate-forme

ArticleCategory: [Choose a category, translators: do not translate this, see list below for available categories]

Software Development

AuthorImage:[Here we need a little image from you]

[Photo of the Author]

TranslationInfo:[Author + translation history. mailto: or http://homepage]

original in de Michael Tschater 

de to en Jürgen Pohl

en to fr Florent Morel

AboutTheAuthor:[A small biography about the author]

Michael est principalement occup� par des d�veloppements logiciels relatifs au mat�riel (firmware). Pour son projet actuel, une d�cision suppl�mentaire concernant l'environnement de d�veloppement - pour �tre utilis� pour la programmation de � l'interface � de son firmware - a d� �tre prise.

Abstract:[Here you write a little summary]

Pratiquement tous les �quipements utilis�s dans l'industrie peuvent �tre controll�s � travers un r�seau. L'interface utilisateur tourne ind�pendemment du mat�riel et agit comme un simple client, recevant et envoyant des donn�es non critiques (i.e. param�tres d'initialisation et r�sultats de mesures ou tests). Ceci est repr�sent� en vert dans le diagramme suivant :
[gui frontend]
Les projets logiciels requi�rent souvent une r�ponse � la question : � Quel syst�me d'exploitation doit �tre suppport� ? �. Tandis que les lecteurs de ce magazine pr�f�rent Linux, il est n�cessaire de supporter d'autres syst�mes (principalement Windows). En principe, la question du syst�me ne doit pas repr�senter le probl�me dominant d'une application ; l'utilisateur doit �tre capable d'arriver � des r�sultats de mani�re intuitive.
L'article suivant devrait d�montrer que le choix d'une plate-forme sp�cifique n'est pas requis puisqu'il est possible d'�crire des programmes qui peuvent �tre compil�s pour diff�rents syst�mes d'exploitation. Cet article sera limit� aux PC avec Linux et Windows. Il devrait aussi �tre possible d'utiliser les applications sur Mac et MacOSX mais ceci ne peut �tre d�montr� faute de mat�riel.

ArticleIllustration:[One image that will end up at the top of the article]

[Illustration]

ArticleBody:[The main part of the article]

Avec les biblioth�ques ind�pendantes des plate-formes, il est n�cessaire de faire la diff�rence entre deux approches pour ce qui est des bo�tes de dialogues ou des menus :
  1. Biblioth�ques natives : pour afficher les �l�ments de l'application, les routines correspondantes du syst�me d'exploitation sont utilis�es. Cela assure que tous les contr�les apparaissent de la m�me mani�re que le reste des applications du syst�me. Une biblioth�que native g�re diff�remment les contr�les sous Linux et sous Windows 2000 ou XP.
  2. La seconde possibilit� est de programmer un comportement et un look particulier, ainsi tous les contr�les seront affich�s de la m�me fa�on sous tous les syst�mes d'exploitation.
En plus des caract�ristiques techniques des biblioth�ques, d'autres facteurs op�rationnels jouent un r�le qui doit �tre compar� :
Dans certains cas, il est important de prendre encore une petite chose en compte, cependant cela ne s'applique pas � tous les projets :
En affichant les biblioth�que dans un mod�le de couches, on obtient ceci :
layer-model

Langages de Programmation

Le premier crit�re � choisir est le langage de programmation. Il y a plusieurs choix, qui vont �tre discut�s plus bas :
  1. biblioth�ques C/C++
  2. Java
  3. Kylix
  4. Smalltalk
  5. Mozilla
Les alternatives � C et C++ seront expliqu�es plus en d�tail car elles sont moins pris�es des d�veloppeurs.

Exemple d'application

Pour pouvoir comparer les diff�rents paquets logiciels, un exemple d'application utilisant toutes les biblioth�ques doit �tre g�n�r�. L'impl�mentation de l'application n'a aucune fonctionnalit� mais elle montre les principaux contr�les. Pour les fen�tres, le programme cr�� sera du pur Windows (Visual C++ 6.0, biblioth�ques MFC-Class), les autres paquets lui seront compar�s. Nous comparerons le � look & feel � (design et comportement des contr�les). Les distributions Linux utilis�es seront RedHat Fedora Core 2 et Debian 3.0.
Windows 2000 Screenshot Windows XP Screenshot

Captures d'�cran Windows 2000 et Windows XP (code source pour Visual C++ ici (win32_src.zip)).

Biblioth�ques C/C++

Trolltech Qt

Qt est une biblioth�que de classes de la compagnie Norv�gienne Trolltech pour cr�er des applications sur plate-forme ind�pendantes avec C++. KDE, un des gestionnaires de fen�tre de Linux, est bas� sur le paquet Qt. � l'origine, Qt �tait sous une licence qui n'�tait pas tol�rable de la part de beaucoup d'utilisateurs Linux. Pour cette raison, la bibioth�que GTK+ a �t� d�velopp�e. C'est cette biblioth�que que l'on retrouve dans le gestionnaire de fen�tre Gnome. Pendant ce temps, la version Linux, tout comme la version MacOS, fut disponible sous licence GPL, incluant tout le code source. Qt pour Windows est toujours disponible dans le commerce. Une version d'�valuation doit pouvoir �tre t�l�charg�e depuis leur page web - une distinction de licence est effectu�e selon que l'utilisation est commerciale ou acad�mique. C'est la version commerciale d'�valuation dont il sera question par la suite. Cette version requiert de s'enregistrer aupr�s de Trolltech.

En plus des versions pour Windows, Linux (Unix) et Mac, une version embarqu�e est disponible. Elle tourne sur diff�rents Linux embarqu�s et offre une fen�tre d'administration plus �pur�e.

L'installation sous Linux se d�roule comme pr�vu, sans accroc. Le g�n�rateur d'IHM (interface utilisateur) Qt Designer est inclus, tout comme la documentation d�taill�e, des exemples d'application, un guide de d�marrage rapide (Quick Start Guide) et une revue des classes. Qt Designer g�n�re une description XML de l'IHM. En utilisant l'outil QT-Tool qmake, vous pouvez g�n�rer un Makefile valide � partir de la description XML. Ce Makefile g�n�re alors le code source C++ � partir de la description de l'IHM (Qt-Tool : uic) et appelle le compilateur M�ta-Objet (Meta Object Compiler) (Qt-Tool : moc). Celui-ci traduit les extensions (en langage Qt) en code source C++. Ensuite, une proc�dure standard de make pour compiler l'ex�cutable peut �tre op�r�e.

La s�quence suivante est n�cessaire pour g�n�rer les fichiers souces manuellement (le fichier en entr�e est MyDialog.ui) :
qt linux qt win

Captures d'�cran Linux et Windows 2000 (code source pour QtDesigner ici (qt_src.tar.gz)

R�sum� sur Qt

Nom :
Trolltech Qt
Version :
3.3.2
Syst�mes d'exploitation :
Linux, Win32, MacOS, Solaris, IRIX, AIX, HP-UX
Langage :
C++
Licence :
GPL ou licence propri�taire (commerciale)
Avantages :
  • biblioth�que de base de KDE (Windows Manager sous Linux)
  • installation des paquets dans toutes les distributions standard (installation tr�s simple)
  • contr�les g�n�riques sous Windows
  • superbes environnements de d�veloppement
  • approuv�e
  • support des migrations pour les applications Win32 MFC permettant une conversion incr�mentale du code source MFC.
Inconv�nients :
  • possibles co�ts de licence (montant �lev�)
  • le logiciel d'�valuation produit des erreurs lors de l'installation sous windows
Environnements de d�veloppement :
e.g. QtDesigner, KDevelop
WWW : http://www.trolltech.com
Documentation :
manuels, tutoriels, listes de diffusion
e.g. http://doc.trolltech.com/3.3/index.html
Projets r�f�rences :
  • KDE Desktop (Defaut e.g. avec SuSE)
  • Navigateur Opera
  • Album Photoshop
Distribution :
tr�s diffus�


wxWidgets

L'outil wxWidgets est disponible depuis quelques 12 ann�es, mais il n'obtint son nom actuel qu'il y a quelques mois. Le nom wxWindows, utilis� jusque l�, fut abandonn� apr�s quelques � discussions � avec Microsoft. wxWidgets inclut une impressionante collection de classes pour tous les domaines d'application. La liste des applications r�f�rences d�montre la maturit� du paquet logiciel.

Le programme est en C++, il est similaire � Visual C++ sous Windows.

Un inconv�nient avec wxWindows2.4.2 sous RedHat Fedora Core 2 est que vous rencontrez des erreurs en compilant les programmes d'exemple. La cause est que des appels GTK+ sont d�clar�s private dans les versions GTK+ patch�es par RedHat. L'appel � ces fonctions n'est donc pas permis. Cependant ce sont des probl�mes mineurs. Tout fonctionne normalement quand la biblioth�que standard GTK+ est utilis�e. Sous Debian, tout roule.

L'installation sous Windows fonctionne sans probl�me.

wxWidgets on Linux screenshot wxWidgets on Windows screenshot

Captures d'�cran Linux et Windows 2000 (code source pour wxWidgets ici (wx_src.zip)).

Overview of wxWidgets

Nom :
wxWidgets
Version :
2.4.2
Syst�mes d'exploitation :
Linux, Win32, syst�mes embarqu�s
Langage :
C++
Licence :
LGPL
Avantages :
  • prise en main ais�e (beaucoup d'exemples).
  • tr�s bonne documentation.
Inconv�nients :
  • Probl�mes avec la combinaison : Fedora Core 2 - wxWindows2.4.2
Environnements de d�veloppement :

WWW : http://www.wxwidgets.org
Documentation :
manuels, tutoriels, listes de diffusion, wiki
e.g. http://wiki.wxwidgets.org
Projets r�f�rences :
AOL Communicator
Distribution :
pas tr�s diffus�


GTK+ (avec gtkmm)

L'acronyme signifie � The Gimp Toolkit � (la trousse � outils de The Gimp). Deux c�l�bres projets sont le Windows Manager Gnome - inclus dans beaucoup de distributions Linux - et l'application graphique The Gimp. Gnome est l'un des deux principaux environnements de bureau - avec KDE (voir Qt) - sous Linux. C'est l'environnement par d�faut dans nombre de distributions. Avec la sortie de GTK+ version 2, le � look & feel � a �t� sensiblement am�lior�.

Une particularit� de GTK+ est sa compl�te impl�mentation en C. En cons�quence, le g�n�rateur d'IHM glade2 produit du code C. En utilisant gtkmm (anciennement GTK--), le code peut aussi �tre g�n�r� en C++.

Contrairement � l'apparence tr�s � professionelle � de GTK+ pour Linux, 'GTK+ for Win32' n'est pas impressionant. Cliquer sur le lien de la page principale de GTK+- affiche imm�diatement l'avertissement suivant : � The program(s) might crash unexpectedly or behave otherwise strangely � (Le programme peut crasher de fa�on impr�vue et agir de fa�on �trange). (Mais bien s�r, beaucoup d'autres programmes commerciaux tournant sous Windows agissent de m�me). La stabilit� semble d�pendre fortement de la machine, des pilotes d'affichage, des autres programmes install�s ou non pr�sents (statut du 06 Septembre 2004). Les d�veloppeurs courageux cliqueront sur la page de t�l�chargement quand m�me. Pour un paquetage facile � prendre en main, veuillez repasser. Au lieu de cela, le d�veloppeur pourra lire des instructions sur comment installer nombres de composants logiciels, et comment revenir sur la page de t�l�chargement si certains composants sp�cifiques sont manquants. Cela correspond parfaitement au message de la page d'accueil de GTK+ pour Windows : � You are expected to be quite experienced to be able to use GTK+ in your own programs. This isn't Visual Basic. � (Il est n�cessaire d'�tre exp�riment� pour pouvoir utiliser GTK+ dans ses propres programmes. Ceci n'est pas Visual Basic). Apr�s avoir install� les composants initiaux et une tentative rat�e de commencer une des applications d'exemple, la plupart des d�veloppeurs peuvent avoir perdu leur envie d'aller voir plus loin avec cet outil. GTK+ pour Win32 p�che donc par une pr�sentation et une prise en main pas tr�s professionelle, ce qui ne le destine donc pas � ce type d'applications.


GTK+ screenshot
Capture d'�cran de GTK+ pour Linux (code source pour glade2 ici (gtk_src.tar.gz)

R�sum� sur GTK+

Nom :
GTK+ - The GIMP Toolkit
Syst�mes d'exploitation :
Linux, Win32
Langages :
C (C++ avec gtkmm)
Licence :
LGPL
Avantages :
  • biblioth�que de base de Gnome (gestionnaire de fen�tres sous Linux)
  • paquet d'installation inclus dans toutes les distributions standard (installation tr�s simple)
  • contr�les g�n�riques sous Windows
  • approuv� (sous Linux)
Inconv�nients :
  • L'impl�mentation Win32 est instable (statut du 09-2004)
Environnements de d�veloppement :
e.g. 2glade (GUI Builder), Anjuta
WWW : http://www.gtk.org
Documentation :
manuels, tutoriels, listes de diffusion
e.g. http://developer.gnome.org/doc/API/2.0/gtk/index.html
Projets r�f�rences :
  • Gnome Desktop
  • The GIMP
  • Gnumeric
Distribution :
Linux: tr�s bien diffus�, Windows: distribution marginale


FLTK

Le Toolkit FLTK (pour Fast, Light Tool Kit) est un paquet trop m�connu. Il fut impl�ment� comme le successeur de XForms. Les sources compl�tes sont t�l�chargeables depuis le site du projet. La taile, 2.3Mo (Linux) ou 3Mo (Windows) prouve son nom. Installation sous Linux sans accroc : on d�packe, on lance 'make', et c'est fini ! L'utilisateur a alors � sa disposition biblioth�ques, applications d'exemples, le GUI builder � fluid � et un handbook de programmation. �videmment, le nombre de classes mis � disposition est plus r�duit que ceux de � poids-lourds � comme Qt ou wxWindows. Les classes incluses couvrent tout le domaine GUI, c'est-�-dire : fen�tres, menus, contr�les, OpenGL et affichage d'images. Les classes pour des communications r�seau et autres ne sont pas incluses.

L'installation sous Windows �tait plus compliqu�e. Sous l'environnement de d�veloppement Visual C++, seul le projet principal n�cessitait un portage. Cela g�n�re cependant des probl�mes avec les biblioth�ques graphiques. Une solution simple est de supprimer les commentaires dans le fichier de configuration config.h. Une seconde sp�cificit� de Windows est que la version DEBUG de la biblioth�que FLTK ouvre toujours une fen�tre DOS additionnelle. Cela assure, aux programmes d�marr�s depuis la ligne de commande, la possibilit� d'�crire sur stderr et stdout.

D'un point de vue g�n�ral, le Toolkit FLTK laisse l'impression d'�tre bien pens�. La documentation augmente la petite taille de l'ex�cutable (80ko pour un � hello world �) ainsi que des composants graphiques 2D et 3D (OpenGL) l�gers et rapides. De plus, la bonne portabilit� doit �tre soulign�e.
Linux FLTK Screenshot
Windows FLTK Screenshot

Captures d'�cran de FLTK sous Linux et Windows 2000 (code source pour FLTK ici (fltk_src.tar.gz) )

R�sum� sur FLTK

Nom :
Fast Light Tool Kit
Version :
1.1.5rc2
Syst�mes d'exploitation :
Linux, Win32, MacOS
Langage :
C++
Licence :
LGPL
Avantages :
  • biblioth�que tr�s l�g�re
  • Code source incluant la documentation et l'environnement de d�veloppement � fluid �.
  • bon support OpenGL (non test�)
  • contr�les g�n�riques sous Windows
Inconv�nients :
  • Installation sous Win32 (Visual C++) non sans probl�mes
  • L'environnement de d�veloppement � fluid � n'est pas stable sous Windows.
Environnements de d�veloppement :
e.g. fluid (GUI Builder)
WWW : http://www.fltk.org, Download : http://freshmeat.net/projects/fltk/
Documentation :
Manuels, Tutoriels, Listes de diffusion
e.g. http://
Projets r�f�rences :
Distribution :
Petite distribution, tr�s m�connu, m�me dans la communaut� de d�veloppeurs.


Le Toolkit FOX

Le Toolkit FOX pr�tend �tre le plus rapide des toolkits disponibles. Il offre un large �ventail d'�l�ments GUI et une interface OpenGL.

Les installations sous Linux et Windows se sont d�roul�es sans probl�me. Une documentation d�taill�e ainsi que des exemples de projets sont fournis. Un descriptif des classes n'est pas inclus dans la version pr�sent�e mais est disponible en ligne.
FOX screenshot

Capture d'�cran pour FOX sous Windows 2000 (Code source ici (fox_src.zip)).

R�sum� sur FOX

Nom :
FOX Toolkit
Version :
1.2.9
Syst�mes d'exploitation : :
Linux, Win32
Langages :
C++
Licence :
LGPL
Avantages :
  • Bonne documentation
Inconv�nients :
Environnements de d�veloppement :
WWW : http://www.fox-toolkit.org
Documentation :
Manuels, Tutoriels, Listes de diffusion
Projets r�f�rences :
  • X File Explorer (Xfe)
Distribution :
petite distribution

Autres possibilit�s

En plus des biblioth�ques pr�-cit�es, je souhaiterais aussi mentionner les projets suivants que je ne vais pourtant pas d�tailler.

JAVA

En 1995, la compagnie Sun pr�sentait un nouveau langage de programmation. En plus des ordinateurs de bureau, Java �tait pr�vu pour des applications professionelles (machines � caf�, grilles-pain, etc...). La principale perc�e vint tout d'abord des applications internet (� applets �) connect�es directement aux navigateurs. Dans le m�me temps, Java fut utilis� pour des applications ind�pendantes (sur la machine locale), qui sont tr�s reconnues pour la vari�t� de leurs possibilit�s.

Ci-dessous, nous allons lister et expliciter bri�vement les principales caract�ristiques de Java.

Ind�pendant de la plate-forme

Java est ind�pendant de la plate-forme. Les applications Java consistent en du byte-code qui est interpr�t� par une machine virtuelle. De ce fait, les applications peuvent tourner sur n'importe quel mat�riel pour lequel une machine virtuelle existe. L'interpr�tation par une machine virtuelle implique une ex�cution plus lente, compar�e � du code compil�. Pour contrer cet inconv�nient, des am�liorations ont �t� d�velopp�es, comme la compilation � juste-�-temps � (Just-in-Time -JIT), qui traduit les instructions du programme venant de la machine virtuelle en des instructions pour la machine physique. Le r�sultat dans ce cas est un programme stock� en m�moire, qui peut �tre ex�cut� rapidement sans interpr�tation. Des analyses plus pouss�es sur le comportement d'ex�cution avec la technologie HotSpot ont montr� des am�liorations suppl�mentaires.

Orientation Objet

Java est orient� objet. Les d�veloppeurs de la partie orientation objet se sont inspir�s de Smalltalk. Probablement pour des raisons de performance, il existe toujours des types de donn�es primitifs qui ne sont pas administr�s en tant qu'objets.

Syntaxe du langage

La syntaxe de Java est similaire � celles du C ou C++, cependant, les bugs impliquant des contradictions ne furent pas adopt�s. Un des principes de d�veloppement du langage �tait de combiner les meilleurs concepts des langages de programmation existant.

Quelques exemples :

Biblioth�que de classes

Java inclut une biblioth�que de classes tr�s �tendue pour la g�n�ration de surfaces : JFC (Java Foundation Class). Le nom de code Swing a �t� adopt�.

Securit�

Le code Java est initialement auscult� pour v�rifier la structure et la s�curit�. Un gestionnaire de s�curit� scrute les acc�s aux p�riph�riques. Tout probl�me de s�curit� est report� comme une exception lors de l'ex�cution.

Java dans les projets

Les avantage mentionn�s ont des effets secondaires qui rendent Java incompatible avec certains types de projets. Ces propri�t�s ne sont pas des erreurs ou des faiblesses, mais elles furent consciencieusement pens�es, elles appartiennent � la philosophie du langage.
Parmi elles, on trouve :

Java Development Kit (JDK)

Le kit de d�veloppement Java peut �tre t�l�charg� depuis le site de Sun. Il inclut le bagage classiques d'applications, de classes et de documentation en ligne Java. Les applications sont : un compilateur, un d�bogueur, un visionneur d'applets, ainsi qu'une vari�t� de programmes auxiliaires, n�cessaires pour g�n�rer et tester des applications et des applets Java. Le kit offre uniquement l'essentiel, le compilateur devant �tre lanc� depuis la ligne de commande. Le paquet contient aussi l'environnement d'ex�cution Java (Java Runtime Environment - JRE), incluant la machine virtuelle qui est requise pour ex�cuter le byte-code. Enfin, la documentation d�crit l'ensemble de l'API (Application Programmer Interface - Interface de programmation d'applications).

JHelloWorld

Avec l'aide du JDK standard, l'application � hello world � peut �tre impl�ment�e.
�tape 1 : G�n�ration du code source.
sh>vi Helloworld.java

public class HelloWorld {
public static void main (String[] args) {

System.out.println("Hello World!");
}
}
Le nom du fichier et de la classe doivent correpondre.
�tape 2 : Traduction code vers le byte-code.
sh>javac Helloworld.java

�tape 3 : Lancement de l'application en utilisant la machine virtuelle.
sh>java Helloworld

JavaScript et Java

On pense souvent que JavaScript et Java ont des similarit�s. C'est faux. JavaScript fut originellement d�velopp� par Netscape comme un langage de script pour �tre embarqu� dans HTML. Ce n'est pas un langage de programmation en lui-m�me, il d�pend du navigateur. Le nom JavaScript est plus � consid�rer comme un gag marketing.

Essais de standardisation

Jusqu'� maintenant, toutes les tentatives pour rendre Java standard ont �chou�. Une des raisons de ceci peut �tre la volont� de Sun de garder le contr�le exclusif sur les d�veloppements futurs et sur les standards de Java.

D�compilation

Un probl�me de Java est que les applications peuvent �tre d�compil�es. Malgr� toutes les pr�cautions de s�curit�, il est toujours possible � l'heure actuelle de convertir le byte-code en code source. Ceci est possible car le byte-code est �crit pour un processeur virtuel et contient donc des informations importantes suppl�mentaires. Ce surplus d'informations rend beaucoup plus ais�e la d�compilation du byte-code. Vous ne pouvez donc pas cacher une API propri�taire ou une connaissance sp�ciale dans le code.

Langage miracle ou mode de courte dur�e

Le concept Java fut d'abord per�u comme l'ultime r�ponse aux d�veloppements de type plate-forme ind�pendant. Cependant, l'effet de mode fut vite pass�. Il existe des conflits de version entre les diff�rentes machines Java et la vitesse d'ex�cution est un probl�me. Beaucoup d'entreprises revinrent apr�s quelques essais vers le standard C++. L'augmentation du nombre de t�l�chargements de wxWidgets rend compte de cela.

Un site int�ressant dans ce contexte est : http://www.internalmemos.com/memos/memodetails.php?memo_id=1321 o� des employ�s de Sun apportent des arguments contre Java.

GUI avec Java

Java offre par d�faut 2 possibilit�s de programmer des interfaces graphiques :
  1. Java est fourni avec une riche biblioth�que de classes (JFC, Swing). Aucune fonction de syst�me d'exploitation n'est utilis�e ici. Toutes les boites de dialogues sont dessin�es avec des instructions Java. Ceci permet de changer le � look&feel � lors de l'ex�cution. Vous pouvez voir une capture d'�cran ci-dessous.
  2. Les fonctions de base de AWT. AWT ne propose pas des �l�ments avanc�s (des arbres par exemple), ce n'est donc pas le bon choix pour la plupart des applications.

Java Metal screenshot Java Motif screenshot
Java Gtk screenshot

Captures d'�cran Java avec l'apparence Metal-, Motif- et GTK+ (Code source ici (java_src.zip))

Java on Win2k here.
Java on WinXP here.

Captures d'�cran Java avec l'apparence Windows sous Windows 2000 et Windows XP (code source identique)

Puisque tous les navigateurs utilis�s supportent Java, les applications peuvent donc �tre �crites pour tourner au sein d'un navigateur. Cette technologie peut alors �tre utilis�e pour des technologies embarqu�es o� le java byte-code est t�l�charg� depuis un serveur web int�gr� dans l'application.
Les captures d'�cran suivantes montrent la m�me application mais sous forme d'une applet int�gr�e dans une page web.

Java applet screenshot
Capture d'�cran de l'application sous forme d'applet Java (code source ici (java_applet.zip))

SWT et Eclipse

Bien que Java offre les m�mes �l�ments GUI que les autres toolkit, les d�veloppeurs se sont plaints. Les plus gros probl�mes �taient une vitesse d'ex�cution trop lente et un manque de fonctionnalit�s. IBM a alors d�velopp� une alternative : SWT (pour Standard Widget ToolKit) qui permet l'utilisation d'�l�ments natifs GUI sous Java. Un des projets r�f�rence est l'environnement de d�veloppement Eclipse (aussi d�velopp� par IBM) qui offre des outils de d�veloppement ind�pendants de la plate-forme. Le toolkit et l'environnement de d�veloppement sont tous deux des logiciels libres.

Abr�viations utilis�es dans le contexte JAVA

JDK (Java Development Kit) Le paquet Java complet pour g�n�rer des applications Java. Contient des applications, des classes Java et la documentation
JRE (Java Runtime Environment)
comprend la machine virtuelle, obligatoire pour faire tourner des applications Java.
J2ME (Java 2 Micro Edition)
Java pour composants � ressources limit�es.
J2SE (Java 2 Standard Edition)
Java pour le desktop (Linux, Windows, ...)
J2EE (Java 2 Enterprise Edition)
Java pour la g�n�ration d'applications client-serveur multi-couches ainsi que les servlets Java et les JSP (Java Server Pages).
JFC (Java Foundation Class) Classes pour d�velopper des GUI (->Swing)

R�sum� sur Java

Nom :
JAVA 2 PLATFORM STANDARD EDITION DEVELOPMENT KIT 5.0
Version :
5.0
Syst�mes d'exploitation :
  • Linux, Windows, AIX, Solaris (SUN), (possibilit� de MacOS, OS/2, FreeBSD, Amiga, BeOS) (Jikes -> IBM)
Langage :
JAVA
Licence :
licence propri�taire (SUN)
Avantages :
  • Langage robuste (plusieurs sources d'erreurs sont �limin�es par le concept du langage).

Inconv�nients :
  • Langage propri�taire, contr�l� en exclusivit� par Sun
  • machine virtuelle, doit correspondre � l'architecture cible
  • vitesse d'ex�cution trop lente
  • programmer en SWT est plus complexe qu'en Swing
Environnement de d�veloppement :
e.g. Eclipse
WWW : http://java.sun.com
Documentation :
manuels, tutoriels
g�n�ral : http://java.sun.com/j2se/1.5.0/docs/, http://www-e.uni-magdeburg.de/mayer/java.html
SWT : http://eclipse-wiki.info/SWT, http://www.java-tutor.com/java/swtlinks.html
Projets r�f�rences :
Distribution :
tr�s grande distribution

Kylix

Kylix est un environnement de d�veloppement multi plate-formes pour Linux et Windows. En s'appuyant sur la biblioth�que CLX (Component Library for Cross-platform) de Borland, on peut coder sous Delphi et C++ des applications capables de tourner sur les deux plate-formes. Selon un rapport de la page de Wikipedia (lien fr.wikipedia.org/wiki/Kylix). Cette biblioth�que est un conteneur de la biblioth�que Qt d�crite pr�c�demment. En plus, l'IDE Kylix est �videmment une application Linux non-native, bas�e sur wine (lien fr.wikipedia.org/wiki/WINE) dont l'ex�cutable doit �tre li� � libwine. Tout bien r�fl�chi, Kylix peut ne pas �tre un bon choix pour les d�veloppeurs C++ puisque l'utilisation de Qt combin� � un IDE libre est possible.

R�sum� sur Kylix

Nom :
Kylix
Version :
3
Syst�mes d'exploitation :
Windows, Linux
Langages :
Delphi, C++
Licence :
Logiciel propri�taire
Avantages :
  • d�veloppement sous Delphi et C++
Inconv�nients :
  • co�ts de licence
Environnement de d�veloppement :
Kylix
WWW : http://www.borland.de/kylix
Documentation :
 
Projets r�f�rences :

Distribution :
pas tr�s diffus�




Smalltalk

Smalltalk est un classique parmi les langages de programmation. Il fut d�velopp� en 1969/70 par Xerox et est toujours aujourd'hui un bon exemple de langage orient� objet. Tout est un objet dans Smalltalk. Il n'y a pas de types de donn�es simples. Smalltalk fonctionne comme Java et .Net (voir plus loin) dans une machine virtuelle. La syntaxe essaie de rester proche de l'anglais parl� mais est totalement diff�rente des autres langages. Smalltalk est utilis� depuis les d�buts des environnements graphiques. Smalltalk �tait en avance de 10 � 15 ans sur son temps. Smalltalk �tait une r�ussite jusqu'� ce que Java �merge.

Voici le programme 'Hello world !' sous Smalltalk :
Transcript show: 'Hello world !'; cr.
Smalltalk est toujours utilis� aujourd'hui. La version la plus largement diffus�e est Smalltalk-80 (standardis�e en 1980). Squeak est un environnement de d�veloppement puissant pour Smalltalk.

R�sum� sur Smalltalk

Nom :
Smalltalk (e.g. Squeak)
Version :
3.6
Syst�mes d'exploitation :
Windows, Linux, Solaris, MacOSX, Darwin
Langage :
Smalltalk
Licence :
Open Source
Avantages : Enti�rement orient� objet
Inconv�nients :
Smalltalk est � pouss� sur la touche � par Java et a une communaut� d'utilisateurs bien moins active.
Environnement de d�veloppement :
Squeak
WWW : http://www.smalltalk.org
Documentation :
 
Projets r�f�rences :

Distribution :
pas tr�s diffus�



Mozilla

Mozilla? Un navigateur web ? Comment peut-on programmer avec un navigateur web ? Mozilla n'est pas seulement un navigateur web mais aussi un framework ind�pendant de la plate-forme qui inclut diff�rents standards tel que XUL (langage bas� sur XML). XUL est utilis� pour d�finir la structure et le contenu d'une application. Tous les fichiers sont en texte clair. Mozillla ne distingue pas les programmes des pages web.

Si vous entrez la cha�ne suivante dans la barre d'adresse de mozilla, alors le navigateur lui-m�me sera affich� :
chrome://navigator/content
Le code suivant affiche un bouton dans le navigateur Mozilla. Il ouvre une fen�tre contenant le texte � Hello World � lorsque vous cliquez dessus :
<?xml version="1.0"?>
<!-- Beispiel XUL Datei -->
<window
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<box align="center">
  <button label="Push" onclick="alert('Hello World');" />
</box>
</window>
Le d�veloppement logiciel avec mozilla est tr�s diff�rent des formes plus classiques de d�veloppement. Mozilla dispose de beaucoup d'innovations comme la s�paration de l'application et de sa pr�sentation. Ceci permet de changer l'aspect d'une application (� l'aide de � Th�mes �). Des projets connaissant le succ�s tels que le navigateur web Firefox montrent que c'est un framework robuste.
Mozilla on Linux Screenshot
Mozilla on Win2k
Captures d'�cran sous Linux et Windows 2000 (code source ici (moz_src.tar.gz)).

R�sum� sur Mozilla

Nom :
Mozilla
Version :
1.6
Syst�mes d'exploitation :
Windows, Linux
Langage :
XUL
Licence:
Mozilla Public License, Netscape Public License
Avantages :
  • concepts innovants
  • support pour de nombreux standards du web (JavaScript, Stylesheets - CSS,...)
  • applications tournant dans le navigateur ou en � ind�pendant �
Inconv�nients :

Environnement de d�veloppement :

WWW : http://www.mozilla.org
Documentation :
Manuels, tutoriels, listes de diffusion. E.g www.xulplanet.com
Projets r�f�rences :
Mozilla Firefox
Distrubution :
tr�s diffus�, mais rarement utilis� comme logiciel de d�veloppement.



La r�ponse de Microsoft

Pendant ce temps, Microsoft n'a bien s�r pas reconnu les outils en place et a introduit sa propre approche. Sous le nom de .Net, une plate-forme fut d�velopp�e, dont l'un des principaux objectifs �tait de r�duire la migration de d�veloppeurs vers la plate-forme concurrente Java. En y regardant de plus pr�s, on s'aper�oit que plusieurs parall�les ont �t� faits avec les concurrents, m�me s'ils ont pris des noms diff�rents. L'�quivalent du 'byte-code' Java est nomm� C# 'Intermediate Language' MSIL.

Qu'est ce que .NET ?

.Net est une technologie propri�taire de Microsoft qui devrait �tre la base de tous les produits Microsoft � venir. Le support pour la biblioth�que - jusqu'� maintenant favoris�e - MFC pour Visual C++ fut abandonn� avec l'introduction de .Net. .Net devrait simplifier le d�veloppement d'applications li�es au r�seau et/ou � Internet. Beaucoup d'id�es de Java furent adopt�es. .Net supporte la programmation oritent�e objet et est fourni avec une biblioth�que de classes unique qui peut �tre utilis�e par plusieurs langages de programmation (C#, VB.NET). Cela signifie que le � langage interm�diaire � - qui acc�de au mat�riel cible - est g�n�r� par le code du programme (comparez : code source Java -> Java byte-code -> machine virtuelle -> mat�riel physique)...

Les versions futures de Windows devraient �tre fournies avec le framework .NET.

Qu'est-ce que Visual Studio .NET ?

Visual Studio .NET est un environnement de programmation destin� � simplifier le d�veloppement de logiciels .NET mais il n'est pas obligatoire.

Diff�rences entre Visual Basic (VB) et VB .NET

Bien que VB.NET - pour des raisons de compatibilit� - supporte beaucoup de fonctions VB et que la syntaxe du langage fut maintenue, c'est un langage de programmation totalement nouveau.

Quel langage de programmation est le plus adapt� ?

Puisque le code source de VB.NET et de C# sont transform�s en MSIL, le langage de programmation importe peu. Il n'y a, par exemple, pas de diff�rences entre du code C# et VB.NET. Le compilateur C# doit �tre tout de m�me plus adapt� car il fut d�velopp� pour le framework .NET.

.NET et Linux

Malgr� l'approche � ind�pedant de la plate-forme �, Microsoft ne devrait s�rement pas d�velopper une version Linux de .NET. C'est pourquoi une �quipe de d�veloppeurs - proche de Miguel de Icaza (Ximian : Evolution) - s'est engag�e dans cette t�che. Le paquet open-source Mono, version 1.0, est aujourd'hui disponible.


R�sum� sur .NET

Nom :
Microsoft .NET-Framework
Version :

Syst�mes d'exploitation :
Windows, Linux
Langages :
C#, Windows : VB.NET
Licence :
licence propri�taire
Avantages :
  • inclus dans les prochains Windows
Inconv�nients :
  • logiciel propri�taire
  • pas de version Linux de .NET disponible
  • API compl�tement nouvelle
Environnement de d�veloppement :
Visual Studio .NET
WWW :
Documentation :
 
Projets r�f�rences :

Distribution :
faiblement diffus� pour le moment



Pour conclure

Avant l'�valuation finale, reprenons l'objectif initial : le but est le d�veloppement d'une � interface �, qui doit communiquer par le r�seau avec le mat�riel connect�. Pour cette raison, le code source doit �tre traduit pour les plate-formes Linux et Win32. L'application ne doit pas se distinguer des autes logiciels existant sur le syst�me. Avec cette t�che, la vue des paquets test�s appara�t biais�e et on ne peut pas �mettre un jugement valide globalement.

Le meilleur exemple est le toolkit FLTK. Avec lui, nous disposons d'un syst�me puissant dans un tout petit paquet. Ses forces sont la taille du code source, une bonne interface graphique et une bonne portabilit�. Ces propri�t�s font de ce toolkit un bon outil pour des projets d'applications graphiques ou embarqu�es. Pour le d�veloppement � d'interface �, le nombre de classes disponible, la manipulation et l'apparence des applications g�n�r�es posent probl�me. C'est pourquoi le toolkit FLTK est moins appropri� pour ce type de t�ches.

Une grosse d�ception pour les d�veloppeurs doit �tre le projet GTK+ sous Windows. La communaut� Linux pourrait d�montrer un peu plus d'engagement. Les avertissements plac�s sur le site ne sont pas faits pour coder en toute confiance. Ceci est d'autant plus regrettable que le paquet GTK+ semble bien r�alis�. Le potentiel est plut�t large ; l'impl�mentation pour la plate-forme Windows reste en attente.

Utiliser les outsiders Smalltalk et Mozilla rel�ve de choix personnels. Une entreprise, qui fait son chiffre sur du mat�riel d�velopp� en son sein, peut ne pas �tre port�e sur des tentatives plus philosophiques. Bien que Smalltalk soit le meilleur langage de programmation orient� objet et que le langage XUL de Mozilla donne encore plus de signification au navigateur inclus, ces paquets ne sont pas des produits majeurs pour le d�veloppement logiciel.

Dans cette �tude Kylix, ainsi que GTK+ pour Win32, laissent une impression plut�t n�gative. On retrouve tr�s peu de la gloire du produit originel Turbo Pascal. Dans les ann�es 80 Borland sortit un IDE puissant avec son produit, qui tournait sur des ordinateurs personnels ainsi que sur les premiers PCs. Il �tait reconnu pour son prix raisonnable et son ex�cution rapide. Depuis, bien des choses ont chang�. Borland est devenu Inprise puis est redevenu Borland. Turbo Pascal a chang� pour Object Pascal, puis Delphi et finalement Kylix (avec bien s�r son lot d'extensions et de changements). Son utilisation n'est plus justifi�e � l'heure actuelle - du moins pour de nouveaux projets.

Dans ce contexte, Microsoft d�montre qu'il reconnait le besoin actuel. Initialement, l'entreprise essaya de suivre le standard Java avec Visual++. En plus des commandes standard Java, des acc�s � l'API Win32 et m�me des acc�s � la base de registre Windows �taient permis (ce qui est contraire � la philosophie du langage). De plus, les ex�cutables Win32 �taient g�n�r�s automatiquement. Apr�s quelques empoignades judiciaires avec Sun, un avertissement devait �tre affich� indiquant que l'application nouvellement cr��e peut ne pas fonctionner avec d'autres syst�mes d'exploitation. La fin de l'histoire vit Microsoft arr�ter son engagement avec Java. Une toute nouvelle strat�gie fut d�velopp�e. Avec .NET et C# un standard tout neuf fut g�n�r�. La combinaison de Windows, .NET et C# est certainement une bonne solution, mais c'�tait aussi le cas avec la combinaison - maintenant obsol�te - de Windows avec Visual++ et la biblioth�que de classes MFC. L'inconv�nient est que l'on est inconditionnellement � la merci du fournisseur qui veut imposer � son � standard (Windows). Microsoft n'a certainement pr�vu aucune impl�mentation de .NET vers d'autres syst�mes d'exploitation dans un futur proche. Le projet de conversion Mono doit d'abord prouver son int�r�t. Malgr� les r�sultats initiaux, aucune conclusion ne peut �tre tir�e � l'heure actuelle.

Les paquets recommand�s sans limitation sont Qt, wxWidget et Java. Le choix final est difficile puisque tous trois sont capables de g�n�rer des interfaces logicielles complexes. Plusieurs facteurs sont � prendre en compte : la qualit� du support, les co�ts, la maturit� du langage, la philosophie de programmation, etc. Les distinctions se trouvent dans les d�tails ; la philosophie Java, ne permet pas d'acc�s direct au mat�riel, mais peut avoir des avantages sous d'autres aspects. D'un point de vue technique, les trois concurrents peuvent convenir sans probl�mes.

Reste une conclusion subjective de la part de l'auteur : les partisans de l'Open-Source peuvent se pencher sur wxWidget pour leurs projets. En plus d'un concept agr�able et d'un bon support, une documentation compl�te est disponible.