Passage de Thunderbird à Evolution

C’est la lecture d’une dépêche sur les dernières avancées de Thunderbird sur linux-fr.org qui m’a donné envie de migrer vers Evolution, le client de messagerie (et d’informations personnelles comme l’agenda ou le carnet d’adresses) par défaut de Gnome.

L’article est pourtant positif, pointant les progrès de Thunderbird, que j’avais d’ailleurs pu constater avec la dernière version v102 : amélioration de l’interface, correction de bugs, support de protocoles amélioré permettant de se passer de certaines extensions…

Tout allait pour le mieux, mais une phrase m’a fait tiquer :

Pour des questions de sécurité, IMAP et SMTP ont été réécrits de C vers JavaScript.

Bon, je ne suis pas développeur, mais dire ça, c’est tout de même assez gonflé ! Il est sans doute plus juste de dire que les compétences de développement en C sont plus rares que celles en JS, comme il est suggéré dans l’un des commentaires de la dépêche, que d’invoquer des raisons de sécurité. Mais c’est un commentaire très ironique qui a retenu mon attention, qui « dégomme » pas mal TH, et notamment son utilisation mémoire :

Passer de C à Javascript c’est surtout encore consommer utiliser intelligemment plus de ressource processeur et de mémoire vive. Effectivement, Rust aurait été un meilleur choix risqué. Mais il y a aussi l’option d’auditer le code C et d’écrire une suite de test complète.

Thunderbird fait partie de ces logiciels qui se dégradent lentement mais sûrement avec le temps qui migrent vers les technologies du web 3.0 . Pour gérer mes 4 boîtes emails, il s’accapare n’utilise admirablement qu’ un unique gigaoctet de mémoire vive, a des lenteurs et crashs aléatoires incite son utilisateur a le fermer régulièrement dans un soucis d’optimisation des ressources.
L’équipe de développement a clairement pris le chemin de la réécriture totale en JavaScript, une route sans retour au pays du typage dynamique et autres joyeuseté qu’il est bon de fuir quand on cherche à faire un logiciel performant et fiable des meilleurs logiciels actuels.

Heureusement que l’on a de jolies icônes maintenant, merci la MZLA Technologies Corporation.

En plus de me faire bien rigoler, cela m’a fait prendre conscience d’un certains nombre de choses. Et comme j’avais aussi observé d’autres problèmes avec Thunderbird, cela m’a décidé à me pencher sur Gnome Evolution, le client par défaut sous Debian. Et ça m’a plu, c’est mieux intégré au système que Thunderbird, plus sobre aussi.

Dans cet article, nous allons voir les nouveautés apportées par Thunderbird qui auraient du me satisfaire, puis les raisons qui m’ont finalement décidé à migrer vers Evolution.

Concernant le passage proprement dit et la personnalisation nécessaire, comme la boite de réception unifiée, ou l’archivage des mails, ce sera l’objet d’un prochain article.

Les nouveautés de Thunderbird 102

Et voilà : au moment ou Thunderbird s’améliore, je le quitte ! 🙄

Avec la version 102, les nouveautés sont pourtant sympas : une nouvelle barre d’espaces pour basculer rapidement entre les mails, les contacts, le calendrier, les tâches… et de nouvelles icônes avec de jolies couleurs :

Created with GIMP

Plus important la gestion complète du protocole CalDAV avec la découverte des calendriers : il suffit désormais de rentrer l’adresse principale du serveur CalDAV et tous les calendriers apparaissent (auparavant, il fallait rentrer l’adresse de chaque calendrier un par un) :

Ou encore un meilleur support du protocole vCard pour les contacts. Celui-là, je l’attendais depuis un bout de temps : les photos des contacts n’étaient pas synchronisées via CarDAV et j’étais obligé d’utiliser deux extensions (« Tbsync » & « Provider for CalDAV & CardDAV ») pour contourner le problème. J’avais même ajouté une entrée à ce bug Sync the contact photo via CarDAV créé il y a deux ans et qui dormait un peu… Le problème a donc enfin été fixé avec la v102 de TH : passage au format vCard pour stocker les contacts (et remplacement d’une lib en C par une autre en JS au passage).

Les photos des contacts sont enfin synchronisées.

Voilà pour les choses qui me concernaient directement, voir la dépêche citée au début de l’article pour plus d’infos sur les nouveautés.

Les problèmes

La consommation mémoire

Il y a donc ce problème d’utilisation mémoire mentionné dans l’article. Je suis immédiatement allé voir combien de mémoire utilisait Thunderbird sur ma machine. J’étais non pas à 1 Go mais à 600 Mo, ce qui me paraît déjà considérable. J’ai fermé puis ré-ouvert Thunderbird : j’étais revenu à 329 Mo.

J’ai laissé TH tourner, et trois jours plus tard, j’étais déjà passé à 466 Mo :

Il semble bien qu’en laissant Thunderbird ouvert plusieurs jours, la taille mémoire augmente de façon assez considérable.

Certains développeurs disent que c’est normal, que JS a son propre GC (« Garbage Collector », disons sa corbeille), et que tant qu’il y a de la mémoire libre sur le système, ce n’est pas un problème de l’utiliser. La théorie est la suivante :

Regarder l’utilisation mémoire brute est une mauvaise mesure, puisque JavaScript a aussi son garbage collector et qu’il peut être plus efficace de garder les objets en mémoire plutôt que de constamment la vider.

Bien sûr, si l’environnement mémoire est restreint le Garbage Collector nettoiera plus souvent la mémoire, mais ça implique que le processeur commence a passer plus de temps à faire des choses inutiles pour l’utilisateur.

Bon, je ne suis pas fan de ce genre d’argument. Personnellement, j’appelle ça une fuite mémoire (memory leak) qui normalement doit être corrigée (bug) et c’est souvent très compliqué à traiter pour les développeurs.

Les autres problèmes

Mais il y a d’autres points qui me posaient problème avec Thunderbird :

Le plus gênant était des problèmes d’indexation des dossiers. Cela se traduisait par un affichage du corps du mail (panneau message) qui ne changeait plus alors que je sélectionnais un autre message dans la liste des mails, ce qui était tout de même très gênant, car pouvant amener à la suppression non souhaitée d’un mail. La seule manière de régler ce problème (hormis un redémarrage) était de ré-indexer le dossier :

Il y avait aussi l’obligation d’installer l’extension Thunderbird Conversation pour obtenir un affichage en mode conversation des mails, ce que je trouve assez pratique, mais aussi et surtout pour que la photo des contacts s’affiche dans l’en-tête, ce qui est bien pratique pour visualiser l’expéditeur.
Voilà d’ailleurs le genre de fonctionnalité qui me paraît tout de même assez basique et simple à implémenter dans un client mail. Or ce n’est pas le cas, j’utilisais une autre extension précédemment pour ce faire, puis elle a disparu (elle n’était plus compatible), et maintenant seule l’extension Conversation permet de le faire. Mais cette extension a parfois des soucis à afficher les attachements… 😥

D’ailleurs, à propos du système d’extensions de TH, elles ont montré leurs limites, devenant régulièrement incompatibles au gré des nouvelles versions, ce qui est finalement assez lassant. Et on peut comprendre les développeurs bénévoles qui doivent soudainement tout réécrire parce que Mozilla a brusquement décidé de changer les règles.

En conclusion, Thunderbird me fait tout de même l’effet d’être une belle usine à gaz, évoluant difficilement, longue à adopter les standards, et au développement incertain (abandonné par la Mozilla Corporation, repris par la Mozilla Foundation…). Quand je lis cet article, ça ne me rassure pas plus que ça :

The long term plan is to migrate our code to web technologies, but this will take time, staff, and planning. We are looking for highly skilled volunteer developers who can help us with this endeavor, to make sure the world continues to have a high-performance open-source secure email client it can rely upon.

Il y a aussi le fait que K-9 Mail rejoigne la famille Thunderbird pour un futur « Thunderbird Android » : pas sûr que les utilisateurs de K-9 soient très gagnants dans l’histoire…

Gnome Evolution

Donc voilà, je me suis tourné vers Evolution pour voir ce que cela vaut aujourd’hui. On peut le comparer à MS Outlook en terme de fonctionnalités. Il est très complet, gère les mails, l’agenda, les contacts, les tâches et les mémos.

Petit retour en arrière, je faisais le chemin inverse en 2010, comme je le décris dans cet article (c’est pratique un blog, pour se rappeler de certaines choses). Mais c’est dommage, je n’en explique pas vraiment les raisons : « pris d’une inspiration subite, je migre d’Evolution à Thunderbird » parce que « Evolution ne me satisfait pas complètement« . J’aurais du un peu plus argumenter les raisons de cette migration. Peut-être le manque de « customisation » d’Evolution, comparé aux nombreuses extensions disponibles avec Thunderbird ? Aujourd’hui, ce serait presque l’inverse qui me fait revenir vers Evolution. Et comme l’intégration à l’environnement de bureau me paraît être un élément de poids dans le choix du client de messagerie, il y a une certaine logique à ce changement : Thunderbird est le client mail par défaut d’Ubuntu mais je suis désormais sous Debian Gnome ! 😉

La première impression, c’est une interface propre, complète et sobre, ce qui n’est pas pour me déplaire. Comme pour tout l’environnement Gnome, il n’y a pas une multitude d’options pour tout modifier/personnaliser, mais ce qu’il y a fonctionne.

Je crée rapidement les comptes mails, les calendriers, les contacts. Tout se fait très rapidement, grâce aux protocoles IMAP pour les comptes mail, CardDAV pour les contacts, et CalDAV pour les calendriers (ces deux derniers étant synchronisés via mon serveur Baïkal).

Il reste maintenant un peu de travail à faire, comme de créer une boite de réception unifiée pour tous les comptes qui n’existe pas par défaut sur Evolution. Ou encore de s’organiser pour archiver les mails localement, y compris la récupération des archives des années précédentes à partir de Thunderbird.

Ce sera l’objet du prochain article. 😎

Laisser un commentaire

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