Linux Embedded

Le blog des technologies libres et embarquées

Comparatifs Qt / EFL : Présentation des deux bibliothèques

Pour développer une interface graphique sur un système Linux embarqué, plusieurs outils sont disponibles. Dans cette suite d'articles, nous nous intéressons à Qt et aux EFL, deux solutions graphiques open source qui se démarquent et permettent la création d'applications graphiques complexes. Pour commencer la série, nous allons présenter ces deux bibliothèques.

1. Qt

Qt est un toolkit graphique écrit en C++. Il a été développé par deux étudiants norvégiens, Haavard Nord et Eirik Chambe-Eng. Initialement prévu pour Unix et l'environnement X11, il devient rapidement multi-plate-forme, et permet donc de développer sur des environnements comme Unix, Windows et Mac OS X. Les deux étudiants décident de créer la société Trolltech et sortent la version 1.0 de Qt fin 1996.

Le projet KDE est lancé en 1997 par Matthias Ettrich. Il est l'un des bureaux les plus célèbres sur Linux et est entièrement développé en Qt. Le fondateur est rapidement embauché par la société Trolltech. C'est entre autre grâce à KDE que Qt devient célèbre. Il faudra attendre 2000 pour que Trolltech publie Qt2 et Qt/Embedded (à l'époque plus connu sous le nom de Qtopia). Ajourd'hui QtSDK est composé de "Qt framework" et d'un ensemble d'outils permettant de développer des applications aussi bien sur des ordinateurs personnels que sur des systèmes embarqués (Symbian, Maemo et Meego, Android via Qt Necessitas).

Jusqu'en 2008, Qt était sous double licence, GPL et commerciale. Après le rachat par Nokia la même année, Qt est diffusé également sous licence LGPL, ce qui permet de l'utiliser avec d'autres bibliothèques propriétaires sans avoir besoin d'acquérir de licence commerciale.

Aujourd'hui Qt est sans doute le toolkit le plus avancé et le plus célèbre pour développer des applications graphiques sous Linux. Il est parfois considéré comme une extension du C++ par certains développeurs dans la mesure ou il facilite de façon non négligeable le travail d'un développeur. En effet, il n'est pas uniquement un toolkit graphique, mais fournit également une abstraction de composants standards comme l'accès au réseau, l'accès à la base de donnée, les threads, l'unicode qui est supporté nativement et bien d'autres.

Du fait de sa notoriété, une grande communauté s'est créée autour de ce projet. Sa documentation est très complète, contrairement à beaucoup de projets libres. De plus, de nombreux exemples sont fournis avec le toolkit afin de se familiariser avec la logique de programmation de Qt.

Points forts de Qt :

  • Portabilité
  • Abstraction de nombreux composants standards (réseau, thread, dbus, webkit)
  • Outils de traduction
  • QtCreator qui intègrent et utilisent de façon transparente des outils Qt :
    • designer pour créer des interfaces graphiques à la main
    • uic pour générer du code C++ à partir d'une interface graphique
    • rcc pour compiler un fichier de ressource
  • Documentation très complète
  • Accès à de nombreux exemples de code
  • Communauté active

Inconvénients de Qt :

  • Plus lourd que les EFL
    • Mémoire vive
    • Grosses bibliothèques (stockage)
  • Temps de compilation d'un programme développé en Qt est plus long que la compilation d'un programme compilé avec les EFL

2. EFL

Les EFL sont un ensemble de bibliothèques écrites en C sous license BSD et LGPL, elles ont été créées et développées pour le gestionnaire de fenêtres Enlightenment. Ce dernier existe depuis 1997 date de la sortie de la première version. En 1999, la version 0.16 du projet semblait déjà révolutionnaire de par ses effets graphiques précurseurs. Début décembre 2011 la version stable 1.1 des EFL a vu le jour, elles sont maintenant utilisées dans Enlightenment 0.17 qui n'a officiellement pas encore de date de sortie.

Ces bibliothèques sont conçues à la base pour être très optimisées (tant en performance du rendu graphique qu'en empreinte mémoire), et peuvent être utilisées aussi bien sur un ordinateur personnel que dans des systèmes embarqués. Le projet s'est d'ailleurs orienté vers le tactile en pensant (à juste titre), que Linux avait plus d'avenir dans l'embarqué que sur ordinateur. Les EFL fonctionnent sur des architectures peu performantes (ARM 50MHz, 16MB RAM) tout en tirant parti au mieux des systèmes plus puissants. De plus, elles sont compatibles avec un certain nombre de systèmes (Linux, BSD, MAC OS X, Windows) ainsi qu'avec plusieurs architectures (ARM, x86, powerPC, MIPS, Sparc), ce qui fait qu'elles sont tout à fait adaptées à une utilisation dans l'embarqué.

La communauté autour des EFL est assez petite comparée à la communauté Qt. Néanmoins, certaines grosses entreprises comme Samsung supportent activement le développement du projet. De plus, la technologie commence à être utilisée par des industriels tels que Free, Zodiac Aerospace, Intel, Ordissimo, Calaos, Electrolux, ce qui montre clairement la maturité du projet. La documentation des bibliothèques ainsi que les outils pour faciliter le développement ne sont par contre clairement pas au niveau de leur équivalent sous Qt.

Points forts EFL :

  • Portabilité
  • Légèreté
  • Optimisation
  • Très bien adapté à l'embarqué
  • Communauté active

Inconvénients :

  • Documentation moins complète que sur Qt
  • Jeunesse du projet (manque certaines fonctionnalités)
  • Pas d'outils WYSIWYG pour créer des interfaces

Cet article est le premier d'une longue série. Les suivants se focaliseront plus sur l'aspect technique de ces deux projets, et surtout sur la comparaison et l'utilisation de ceux-ci.

    • le 20 février 2012 à 12:28

      Bonjour,
      Cette première étape donne envie de voir la suite. Comme vous le dites, l

    • le 24 février 2012 à 12:15

      [...] Comparatifs Qt / EFL : Présentation des deux bibliothèques | Linux Embedded Portabilité Abstraction de nombreux composants standards (réseau, thread, dbus, webkit) Points forts de Qt : [...]

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.