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]
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 :
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]
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 :
- 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.
- 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� :
- Environnement de d�veloppement : un environnement de d�veloppement
int�gr� (ex : GUI builder, g�n�rateur de makefile) simplifie le
travail du d�veloppeur.
- Documentation et support : aide imm�diate en cas de probl�mes.
- Co�ts : alors que la plupart des biblioth�ques sont disponibles
gratuitement pour un usage priv�, l'utilisation des biblioth�ques dans les
applications commerciales entra�nera parfois un co�t suppl�mentaire. Ces co�ts
devront �tre justifi�s � sa hi�rarchie lors de projets commerciaux.
- Co�t r�el pour effectuer le portage vers d'autres syst�mes.
Dans certains cas, il est important de prendre encore une petite chose
en compte, cependant cela ne s'applique pas � tous les projets :
- Le logiciel cr�� doit utiliser les contr�les natifs pour s'int�grer
sans faille dans l'architecture existante. L'utilisateur ne doit pas
�tre en mesure d'identifier les diff�rences entre le nouveau logiciel
et un existant sur son syst�me.
En affichant les biblioth�que dans un mod�le de couches, on obtient ceci :
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 :
- biblioth�ques C/C++
- Java
- Kylix
- Smalltalk
- 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.
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) :
- uic MyDialog.ui > MyDialog.h
- uic -impl MyDialog.h MyDialog.ui > MyDialog.cpp
- moc -o moc_MyDialog.cpp MyDialog.h
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.
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.

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.
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.

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 : |
|
Inconv�nients :
|
|
Environnements de d�veloppement :
|
|
WWW : |
http://www.fox-toolkit.org
|
Documentation :
|
Manuels, Tutoriels, Listes de diffusion |
Projets r�f�rences :
|
|
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.
- GNUstep [http://www.gnustep.org/]: utilisation limit�e
sous Windows
- Visual Component Framework [http://vcf.sourceforge.net/]:
Pas de version Linux compl�te disponible
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 :
- pas de pr�-processeur. Le pr�-processeur ainsi que les fichiers
en-t�tes (header files) ne sont plus n�cessaires puisque toutes
les informations sont lues directement depuis les fichiers de classes.
- pointeurs : Java n'utilise pas les pointeurs, le passage par
r�f�rence est utilis� � la place. Une r�f�rence repr�sentant
un objet.
- corbeille : pour �viter les probl�mes avec la cr�ation et la
suppression des objets, l'administration des objets est r�alis�e
par l'environnement d'ex�cution de Java (Java Runtime-Environment).
En quittant la liste active, les objets sont automatiquement effac�s.
Les objets ou les listes en m�moire, qui ne sont pas autoris�es, ainsi
que les destructeurs d�fectueux sont �vit�s par cette technique.
- exceptions : contrairement � la gestion des exceptions dans C++,
les exceptions Java sont utilis�es de fa�on plus intense, elles sont
m�mes souvent obligatoires.
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 :
- acc�s aux p�riph�riques sp�cifiques de la plate-forme
- acc�s direct au mat�riel
- interventions dans le syst�me d'exploitation
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 :
- 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.
- 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.
Captures d'�cran Java avec l'apparence Metal-, Motif- et GTK+ (Code source ici
(java_src.zip))
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.

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 :
|
|
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.
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.