Linux Embedded

Le blog des technologies libres et embarquées

Les EFL bientôt en version 1.0

Interview de Cédric Bail, ingénieur développement chez Freebox, développeur actif sur le projet Enlightenment et membre de l’association enlightenment.fr.

– Bonjour, depuis combien de temps travailles tu sur le projet Enlightenment, et comment y es-tu arrivé ?

J’ai connu le projet Enlightenment, quand j’étais à l’école. C’était à l’époque E16 que j’utilisais parfois, car c’était ce qu’on avait de mieux sur les ordinateurs de l’école. Mais comme j’utilisais beaucoup d’applications KDE, j’avais plutôt tendance à utiliser ce bureau. Je n’ai pas suivi ce projet avant 2005 où nous étions à la recherche pour mon travail d’une bibliothèque graphique suffisamment efficace pour un téléphone Wifi qui avait des ressources très limites. J’ai découvert à ce moment là les EFL, et commencé à en faire la promotion en interne. Mais malheureusement, du fait de règles fixées par les avocats de la société, il était interdit de contribuer à des projets de logiciel libre. Il a donc fallu attendre que je rejoigne Freebox pour pouvoir contribuer à ce projet. De manière assez fortuite, les intérêts de Freebox et des EFL étaient convergents. Nous avions besoin d’une série de bibliothèques très performantes pour tirer parti au maximum du matériel, en offrant une API stable, utilisable sur PC pour permettre la réalisation d’un SDK sur la Freebox.

– Peux-tu définir ce que sont les EFL par rapport à e16/e17.

Lorsqu’en 1999, il a été décidé d’écrire E17, il a aussi été décidé de revoir l’architecture complète du window manager pour avoir quelque chose de propre, évolutif, souple, efficace et customisable. Pour cela, chaque fonctionnalité a été découpée et mise dans une bibliothèque indépendante qui peut être réutilisée séparément. Avec le temps la plupart de ces bibliothèques ont dues être réécrites 3 fois, certaines sont mortes et d’autres sont apparues plus tardivement pour combler des besoins qui n’avait pas été vus au début. Ainsi on a :

  • Eina : une bibliothèque de types de données
  • Eet : une bibliothèque de sérialisation et de sauvegarde/lecture d’archives
  • Evas : le cœur, source principale des performances des EFL, la bibliothèque de canevas state-full
  • Ecore : la bibliothèque en charge de la boucle principale, des évènements en général et de la gestion des fenêtres
  • Edje : la bibliothèque qui donne toute la souplesse et la puissance en terme de thème et de layout aux EFL
  • Efreet : la bibliothèque en charge de la gestion des standards FreeDesktop (menus, icones, …).
  • E_DBus : la bibliothèque en charge du dialogue avec dbus.
  • Eeze : une bibliothèque pour remplacer l’utilisation de HAL.

Toutes ces bibliothèques se sont révélées, avec le temps, utiles et finalement pertinentes pour développer une application complète. Il y a juste une bibliothèque, Elementary, qui ne fait pas partie des EFL releasées sous peu, dont je n’ai pas parlé. Celle-ci fournit un certain nombre de widgets de base, complètement thémable grâce à Edje. En fait avec les EFL, il est très facile de faire une bibliothèque de widgets, car les optimisations et la thémabilité sont directement fournis de manière générique. C’est pour ça qu’on a eu jusqu’à 4 bibliothèques différentes de widgets, mais aujourd’hui celle qui se révèle la plus pertinente et que l’histoire a sélectionnée pour ses qualités est Elementary. C’est par contre une bibliothèque qui subit encore un développement très actif.

– Combien de personnes travaillent activement sur ce projet ?

Sur les EFL qui vont être releasées, une dizaine de personnes travaillent dessus. Si on rajoute Elementary, on peut facilement rajouter 5 personnes en plus. Je n’ai pas compté les gens qui travaillent sur d’autres projets annexes ou sur E17. Cela doit rajouter une quinzaine de personnes actives sur le svn en plus. Bien entendu, il n’est pas possible d’estimer combien de personnes développent avec les EFL en dehors du svn, mais leur nombre augmente, car on reçoit de plus en plus de questions techniques précises sur comment utiliser telle ou telle fonctionnalité.

– Quels sont les avantages des EFL par rapport à GTK et QT ?

Le principal, elles ont été designées comme les moteurs de jeu. Cela les rend extrêmement scalables et performantes. La principale raison qui fait que les gens choisissent les EFL, c’est d’abord parce qu’ils ne peuvent pas utiliser QT ou GTK dans leur environnement et qu’ils ont été obligés de chercher une alternative technique plus efficace. La seconde raison, c’est souvent la volonté de faire des applications où l’on a une vraie séparation entre le thème et le code, et ainsi offrir une interface moderne, animée en laissant vraiment libre cours à l’imagination des designers et ergonomes. Cela peut être le cas de media center, ou bien d’interfaces destinées à un public spécifique. De manière générale, les EFL trouvent très bien leur place dans le domaine de l’embarqué.

– Question suivante, évidement, quels en sont les inconvénients ?

Le principal est que l’on ne puisse pas garantir la compatibilité ABI/API d’un code écrit à un moment donné avec la version suivante. C’est pour ca qu’une release est nécessaire. Ensuite, on manque de tutoriels, exemples pour faciliter l’arrivée des nouveaux. Enfin, je dirais que Elementary est encore très jeune et certaines fonctionnalités manquent, comme un MVC plus générique, la possibilité de faire des widgets externes ou encore le support des modes de saisie alternatif. Quand je parle de mode de saisie alternatif, je pense aux claviers de télécommandes et téléphones portable, pas au support de la saisie de texte composé comme le japonais, le chinois et autres qui sont parfaitement bien supportés.

– Après de longues années en version alpha, les composants core des EFL sont en train de passer en version 1.0, qu’est ce qui a motivé cela ?

Passer en version 1.0 veut dire pour nous beaucoup. On veut garantir une compatibilité au niveau ABI et API pendant plusieurs années. Cela uniquement QT a été capable de le faire, grâce à l’apport de Trolltech et de ses besoins professionnels. C’est l’apparition d’un certain nombre d’acteurs professionnels qui fait qu’on peut se diriger vers cette 1.0. et le fait que l’on commence à être plutôt confiant sur nos choix techniques. Contrairement à la concurrence, on s’est plus facilement permis de jeter l’historique qui nous gênait, ce qui fait que aujourd’hui on a quelque chose de propre et efficace.

– Quelle est la roadmap qui va suivre après la sortie de la première version stable des EFL

Nous avons encore au moins une beta de planifiée, dont le but est surtout d’assurer le support pour un maximum de plateformes. Ensuite si tout se passe bien, cela devrait être une release candidate, qui sera suivie très rapidement par la release. Celle-ci devrait donc arriver normalement d’ici un mois ou deux. Une fois que c’est fait, nous avons déjà un certain nombre de changements en attente :

  • Amélioration des performances dans eina, eet, evas (principalement sur la gestion du texte) et edje
  • Amélioration du support des langues dans le texte
  • Support de la traduction directement dans les thèmes
  • Ajout des filtres dans evas
  • Ajout du support de plus d’effet pour modifier les images/surface graphiques, et entrée dans un cycle de beta pour deux nouvelles bibliothèques :
    • Eio: une bibliothèque de gestion d’IO complètement asynchrone
    • Ethumb: une bibliothèque de gestion de thumbnail asynchrone, sûre et générale au système

La release de la 1.1 des EFL, et de la 1.0 de Eio et Ethumb, devrait surement coïncider avec la release de Elementary et E17. Mais cela n’est pas encore arrêté en terme de timing. On se dirige vers un cycle de 6 mois entre chaque version mineure. Et la prochaine majeure ne devrait pas arriver avant 10 ans, en tout cas, on l’espère !

– Peux-tu citer quelques projets utilisant les EFL ?

Elixir sur la Freebox, Canola sur n900, Calaos pour la domotique, Enna comme media center, E17, OpenInkPot pour les Ebooks, le réfrigérateur d’Electrolux Bresil: Infinity I-Kitchen. On pourrait citer Samsung, mais même s’ils sont aujourd’hui le plus gros fournisseur de patchs sur le projet, on n’a toujours pas d’information sur la raison de leur contribution.
(NDLR: le projet SICMA sur lequel Open Wide a travaillé, utilise lui aussi les EFL pour son interface graphique.)

– Pourquoi, d’après toi, les EFL ont tant de succès dans le monde de l’embarqué ?

La principal raison du succès des EFL, c’est qu’on est les seuls à offrir autant de souplesse et de performances quelque soit le matériel.  Elles simplifient aussi l’usage du réseau et des threads. Elles peuvent ainsi être utilisées pour créer des logiciels serveurs.

– Merci Cédric pour toutes ces réponses et bon courage pour cette première release.

Un commentaire sur “ Les EFL bientôt en version 1.0 ”

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *