Pourquoi SWT/JFace s’impose …? April 7, 2007
Posted by josephcargo in Développement, Eclipse, Frameworks, Free Software, IBM, Technologie, Web, ingénierie.trackback
Java a aujourd’hui principalement deux gestionnaires d’interfaces graphiques : AWT (Abstract Windowing Toolkit), qui date de Java 1.0 (soit janvier 1996), et Swing, basé sur AWT et corrigeant ses défauts, fait partie du JDK depuis sa version 1.2 (décembre 1998).
Les développeurs d’Eclipse en substance IBM ont pris la décision de créer leur propre gestionnaire, il fallait donc un plus dans leur projet qui répond plus et mieux en matière du temps par rapport à ce que Swing offrait à l’époque.
Avec l’aide d’Eclipse, et des outils basés sur son framework, SWT a réussi à s’imposer au sein de nombreux projets, devenant une alternative très crédible au couple Swing/AWT en manque de mise à jour. Le développeur a donc le choix aujourd’hui entre deux bibliothèques graphiques, choix que ces pages vont s’efforcer de faciliter.
En définitive, le choix entre SWT et Swing/AWT est devenu aujourd’hui une question politique avant tout, voire religieuse. Swing est le standard de fait, et sera toujours maintenu et reconnu par toutes les distributions Java, tandis que SWT a des alliés puissants, à commencer pour Eclipse et son géniteur IBM. La différence, cependant, se fait sans doute avec JFace…
Pour simplifier, JFace est à SWT ce que Swing est à AWT : un jeu de composants graphiques construisant sur les fondations d’une bibliothèque graphique proche du système.
Mais où est sa force ?
Il faut dire que depuis Eclipse 3.2, JFace propose également un framework de liaison de données (Data Binding Framework), qui cherche à améliorer la gestion des données et leur mise en place au sein d’interfaces JFace/SWT. Pour ce faire, il reprend des idées d’Hibernate, EJB3 et Rails en matière d’automatisation des flux de données entre la couche métier et la couche de présentation.
Il y a bien d’autres avantages qu’on aura l’occasion d’en discuter plus tard…
Salut youssef,
un autre avantage de SWTc’est qu’il fait appel au maximum de composants graphiques natives du systeme d’exploitation sous-jacent(qlq soit), toute en gardant sa portablite ce qui lui rend plus rapide et en meme temps portable.
une petite comparaison entre le trio AWT/Swing/SWT:
AWT, repose sur les composants sous jacents mais qui sont commun entre tous les systemes d’exploitatation, donc rapide mais limité(le minumum commun ou entre les differents SE)
Swing: Sun a essayer de palier cette limitation en ecrivant presque toutes les composants Swing en java donc riche mais un autre probleme c’est la lenteur d’execution bien sur( c java),
SWT: c’est en faite intermidiare entre AWT et Swing, son principe c’est d’utiliser le maximum des composantes natives et en cas de manque les ecriveront en java.
Donc on peux dire que SWT c’est a la fois les avantages de AWT+les avantages de Swing
Bien dit Khalid mais comme même je vais parler un peu de quelques inconvénients:
- la gestion des ressources contraignante par exemple la libération des couleurs due à l’utilisation des fonctions natives.
- il n’existe pas d’applets, cela est dû que SWT n’est pas standard
- la communauté des utilisateurs de SWT reste moins grande que celle de Sun, ce qui nous mène parfois à un peu galèrer pour trouver de la doc
Mais une chose à rajouter, c’est vrai que SWT (Licence EPL) est bien rapide que Swing, mais aussi Swing n’est pas encore complètement implémentée dans les environnements Java libres (Cf GNU Classpath)
Franchement, sans état d’âme, je ne sais pas pourquoi j’adore tout ce que fait IBM !!!!!!!!
Eclipse reste pour moi le meilleur IDE jamais l’histoire n’a connu aussi meilleur que lui …