[ Retour ]

Interview


Interview de Linux Center de Matthias Ettrich par Gaël Duval.

Matthias Ettrich est un programmeur allemand de 26 ans. Il n'est pas très connu bien qu'il soit responsable d'un des plus gros projets de Logiciel Libre après Linux. C'est le K Desktop Environment, un gestionnaire de bureau graphique complet pour Unix et plus spécialement Linux, qui connaît actuellement un grand succès.


Gaël:
Matthias, te rappelles-tu le jour de 1996 où tu t'es dis : "Unix a besoin d'une meilleure interface graphique, je vais la faire..." ? Etais-tu encore en train de développer LyX et quelle était ta situation à l'époque ?

Matthias: En fait, j'étais encore étudiant à cette époque, et mes examens approchaient. Deux choses ont entrainé l'annonce qui a permis de démarrer KDE : tout d'abord, mes tentatives infructueuses d'installer une machine facilement utilisable pour un utilisateur de base, mais également le fait que j'ai découvert la bibliothèque graphique Qt. L'idée était donc plutot simple : voici le problème, il existe une technologie pour le résoudre. Faisons-le !

J'étais encore très impliqué dans le développement de LyX à l'époque. Mais étant donné que LyX avait une excellente équipe de programmeurs derrière, je pouvais facilement faire autre chose sans devoir craindre que le développement de LyX ralentisse.

Gaël: As-tu commencé le projet en solitaire ? Et... y avait-il déjà quelque chose de codé quand tu as posté ton annonce à la fin de 1996 ?

Matthias: Je n'étais pas vraiment seul puisque je savais que beaucoup de personnes, tout comme moi, attendaient le bon moment pour démarrer. De plus, Martin Konold, notre administrateur de serveur FTP et de liste de diffusion, qui avait fait du bon boulot en faisant la promotion de LyX auparavant, a participé dès le début en mettant en place l'infrastructure technique.

Quelques heures après l'annonce nous avions déjà 40 abonnés à la liste de développement. Et un grand nombre d'entre eux sont encore actifs dans l'équipe principale, comme par exemple Torben Weis, Martin Jones ou Kalle Dalheimer qui nous ont rejoint durant les tous premiers jours.

Gaël: T'attendais-tu à ce que le projet prenne une telle ampleur ?

Matthias: J'ai vu un potentiel, mais de là à m'y attendre ? Non pas vraiment. Dans l'annonce originale j'ai suggéré de créer quelque chose qui est loin derrière ce qu'est KDE actuellement. Mais à cette époque, cela semblait raisonable - et nouveau. Ça nous a donné la direction vers quelque chose qui n'était pas un rêve, mais possible. Si j'étais un prophête et que j'avais décrit KDE-1.0 dans cette annonce, peu de personnes auraient été vraiment intéressées de travailler sur un truc aussi énorme. À la place, nous discuterions encore de savoir si on doit se servir de X ou plutot de commencer à écrire notre propre environnement graphique de base.

Gaël: Y-a t'il quelque chose dans KDE 1.0 à laquelle tu ne t'attendais pas du tout au départ ?

Matthias: KDE 1.0 est bien plus puissant et bien plus complet que ce qui était prévu - à l'origine - pour la première mouture destinée à l'utilisateur de base. Il y a donc un grand nombre de choses auxquelles nous (enfin je) ne nous attendions pas. Tout spécialement la qualité du navigateur Web integré me surprend encore, en regard au faible temps de développement, par sa petite taille et ses performances. Peut-être que nous aurions pu mettre en place les raccourcis clavier pour le desktop et les applications un peu plus tot. De toute manière, ceci est déjà disponible dans l'arborescence de développement de KDE-1.1.

Gaël: Pourquoi avez-vous démarré un nouveau projet d'interface graphique au lieu d'essayer d'améliorer celles qui existaient déjà (fvwm, afterstep...) ?

Matthias: fvwm et afterstep sont deux bon exemples de gestionnaires de fenêtres ("window-managers"). Les gestionnaires de fenêtres sont des applications responsables des décorations des fenêtres. Cela signifie : l'apparence de la barre de titre ou du bord des fenêtres. De plus, certains gestionnaires de fenêtres ont une sorte de menu de démarrage destiné à lancer les applications. Mais n'ont aucune influence sur l'apparence de ces applications. Le vieil utilitaire xman par exemple est exactement le même sous fvwm, afterstep ou n'importe quel gestionnaire de fenêtres. Il n'est donc ni plus beau ni plus agréable à utiliser. C'est la raison pour laquelle je refuse d'appeller un gestionnaire de fenêtres une interface graphique utilisateur. Les gens ont commis cette erreur sous Unix parcequ'il n'existait alors aucune interface graphique. Le gestionnaire de fenêtres était tout ce qu'ils avaient bien qu'ils aient ensuite désiré davantage (parceque pendant ce temps, tous les concurrents en ont eu une). Ils ont donc appellé le gestionnaire de fenêtres une GUI (NdT: Graphical User Interface = Interface Graphique Utilisateur) au lieu d'en créer une réellement.

Gaël: Pourquoi as-tu choisi Qt - la bibliothèque graphique utilisée par KDE - comme base ? Etait-ce un meilleur choix en comparaison de Motif, Xforms, Athena Widgets ou encore Lesstif ?

Matthias: J'ai eu des expériences avec Motif puisque la toute première version de LyX l'utilisait. Crois-moi : c'est une expérience que tu n'as pas envie de renouveller ! Motif est extrêmement compliqué à utiliser et nécessite beaucoup de code même pour des tâches simples. Un autre inconvénient, c'est le manque d'API (NdT: Application Programming Interface = Interface de Programmation pour Applications) unifiée quand on programme avec Motif. À la place, tu dois apprendre au moins trois APIs et savoir quand les utiliser : Motif, Xt et Xlib. De plus, ton application n'aura aucun support pour l'impression à moins de le programmer toi-même. A coté de ça, les applications qui en résultent donnent souvent l'impression d'être poussives. XForms est facile à programmer bien qu'il soit écrit en C. Et il est fourni avec un admirable modeleur d'interface. Par contre, le ``look and feel'' n'est pas standard du tout et le code source n'est pas disponible librement. Deux argument rédhibitoires qui interdisent de l'utiliser comme base pour fabriquer une chose telle qu'une interface graphique. Est-ce que j'ai oublié quelque chose ? Ah oui, Athena ! Aucun commentaire n'est nécessaire à son sujet. Ce que j'en préfère le plus sont ses champs de saisie de texte sans aucune gestion du focus : tu dois positionner le curseur de la souris exactement au dessus du ``widget'' (NdT: objet graphique). Pour rester sympa : Athena n'a jamais eu aucun sens en tant que boite à outils graphiques destinée à construire des applications. C'est une belle documentation disponible en ligne sur la manière de construire des boites à outils telles que Motif avec Xt.

De l'autre coté, Qt est plutôt bien fourni et est une véritable bibliothèque de classes C++. Cela rend l'écriture de nouveaux ``widgets'' extrêmement facile, en utilisant simplement le mécanisme d'héritage du C++. Programmer en Qt se fait de façon assez naturelle, au moins aussi naturelle que puisse l'être une tâche abstraite telle que la programmation. D'un autre point de vue, Qt vient avec une excellente documentation. Mais le mieux, c'est qu'il nécessite souvent moins que le quart du code nécessaire à Motif pour écrire une application équivalente.

Gaël: Est-ce que tu penses qu'il est mieux d'utiliser un langage de programmation orienté objet tel que le C++ pour construire des interfaces graphiques, ou est-ce que ce choix a été dicté par celui de Qt (qui est entièrement implémenté en C++) ?

Matthias: Sans aucun doute, c'est beaucoup mieux d'utiliser un langage orienté objet pour cela. L'Orienté-Objet et la programmation d'interfaces graphiques utilisateur fonctionnent extrêmement bien ensemble alors que l'utilisation d'autres langages conduit à une quantité affreuse de travail inutile. En C tu devras par exemple perdre ton temps avec des macros pré-processeur afin de disposer d'une sorte d'API utilisable. Et en faisant cela tu fais habituellement passer à la trappe une grand nombre de vérifications de type statiques. Les véritables techniques OO [NdT: Orientées-Objet] comme les fonctions virtuelles ou la surcharge de définition sont difficiles à mettre en oeuvre en C, et une fois encore, tu perds la plupart des vérifications que peut effectuer un véritable compilateur C++ au moment de la compilation.

Gaël: Etais-tu impliqué dans le projet Qt avant de commencer KDE ?

Matthias: Non. J'ai commencé KDE immédiatement après avoir découvert Qt.

Gaël: On me dit souvent que KDE ressemble à Windows 95/98... Est-ce une caractéristique stratégique ? Ou est-ce que les développeurs KDE sont des adorateurs de Windows ? :-)

Matthias: C'est certainement plus une affaire de gout qu'une caractèristique stratégique. Plus exactement, beaucoup de développeurs KDE admirent Microsoft pour leur interface graphique, alors que la technologie sous-jacente est habituellement pourrie. Mais quand on en vient à la technologie en composants objets c'est très loin devant tout ce qui se fait sous Unix en ce moment. Quoi qu'il en soit, Torben Weis, avec son projet ``OpenParts'' (la technologie utilisée dans KOffice) va changer cela. Mais je dois admettre qu'il existe également une stratégie environnante derrière cela. Comme pour tous les projets dans ce domaine, si tu crées un truc nouveau, tu dois d'abord copier les bons concepts de ton concurrent jusqu'à ce que tu sois toi-même capable de définir de nouveaux standards et d'introduire de nouveaux concepts. Naturellement, KDE a repris beaucoup d'idées de CDE, des environnements X classiques et - personne ne peut nier cela - de MS-Windows.

Gaël: Qu'est-ce que tu aimes/n'aimes pas dans Gnome ? Que penses-tu des outils de la bibliothèque Gtk+ et les aurais-tu utilisés s'ils avaient existé au commencement de KDE ? Est-ce que la guerre Gnome/KDE t'as affecté ?

Matthias: Gtk+ est une boite à outils graphiques impressionante et très complète. Si seulement ça avait été écrit en C++, la décision du choix entre Qt et Gtk aurait été vraiment difficile. Actuellement, la programmation en Qt est plus facile, recquiert moins de code et donne la sensation d'être plus naturelle. Et Qt est bien mieux documenté. Je connais un peu le ``wrapper'' C++ pour gtk mais un petit ``wrapper'' ne peut en aucun cas rivaliser avec une véritable bibliothèque de classes.

En ce qui concerne Gnome: étant donné que tout ce qui est dit à propos de Gnome par les développeurs KDE est pris pour une injure, je devrais mieux rester silencieux. Quoiqu'il en soit, il n'existe pas de guerre Gnome/KDE, du moins en ce qui concerne les développeurs. Les développeurs respectent habituellement tous ceux qui se salissent les mains et qui écrivent du code. Quoiqu'il en soit, les ``flame-wars'' [NdT: violentes querelles de clocher qui sévissent dans les listes de diffusions et les forums de news] m'ont vraiment attristé, détruisant mes croyances selon lesquelles il existe ou existait un semblant de communauté Linux. Ça ne concerne pas seulement KDE, mais tout le reste aussi. Annoncez par exemple que vous etes en train d'écrire un nouvel éditeur de texte. Les gens vont vous incendier parceque vous n'essayez pas d'améliorer emacs à la place. D'autres vont commencer à expliquer que vi a un mode équivalent et c'est parti. N'avez-vous jamais lu un message d'un développeur d'emacs ou de vim insultant l'autre ? Ou alors annoncez que vous écrivez un ``front-end'' (NdT: écran graphique pour un programme qui ne l'est pas) pour LaTeX. Les gens vont vous incendier en vous disant que leur façon d'utiliser TeX est meilleure, plus puissante, plus dans l'esprit d'Unix, etc. Pourquoi ? Parceque beaucoup d'utilisateurs de linux semblent croire que les auteurs de Logiciels Libres veulent les forcer à utiliser exclusivement les nouveautés. Ça n'a pas de sens. Si vous aimez un logiciel, utilisez-le, sinon, utilisez en un autre. Pourquoi est-ce que cela est si dur à comprendre pour beaucoup de fans de Linux ? Je n'en ai aucune idée. Cependant, cela s'améliore un peu, il y a donc de l'espoir. Actuellement, les gens peuvent même poser une question technique à propos de KDE dans un forum de news Linux et obtenir une réponse technique à la place d'un ``flame''. Personnellement, je ne lis plus les groupes de discussion Linux. Le vrai développement ou l'aide aux utilisateurs se déroule dans les listes de diffusion qui fournissent un rapport signal/bruit bien supérieur.

Gaël: Penses-tu que Qt serait de meilleure qualité si c'était un véritable Logiciel Libre ?

Matthias: Je ne pense pas que Qt serait meilleur si c'était un Logiciel Libre. Après tout, il n'y a rien de comparable à Qt sous forme libre actuellement. Afin de garantir le succès de KDE, une bibliothèque de base simple et bien controlée était un facteur important. Cela aurait bien sûr pu être une bibliothèque libre si il y en avait eu une disponible. Au sein de l'équipe KDE, nous souhaitions écrire du Logiciel Libre. Pour nous, Qt convient parfaitement. Ceux qui se plaignent de la licence de Qt sont ceux qui veulent écrire des applications propriétaires sans avoir à payer. Ils peuvent le faire facilement en utilisant d'autres bibliothèques graphiques.

Gaël: Es-tu employé chez Troll Tech?

Matthias: Oui, ce qui peut relativiser ma précédente réponse ;-) J'ai commencé à travailler pour Troll Tech récemment, le 6 aout 1998, c'est à dire, après la sortie de KDE-1.0. En d'autres mots : non seulement je peux continuer avec le développement de KDE, mais en plus je suis payé pour ça :-) Un autre effet induit agréable : je vis maintenant dans la même ville que le mainteneur actuel de LyX, Lars Gullik Bjoernnes, à Oslo. Ce qui signifie qu'après avoir travaillé ensemble pendant des années nous avons enfin pu boire notre première bière (et assez chère à cause des taxes norvégiennes sur l'alcool) ensemble.

Gaël: As-tu participé à QtMozilla, le portage de Mozilla sous Qt ? Y aura t-il un KMozilla ?

Matthias: Bien entendu que j'ai participé ! Sinon j'aurais raté le plus grand `hack' de ces dernières années ! Honnêtement, c'était génial. On a réussi à remplacer environ 500 000 lignes de code avec 25 000 lignes de code Qt - en seulement une semaine, sans aucune documentation. Depuis, Netscape a fourni plus d'informations, le portage est donc plus facile. J'ai été un peu déçu que nous ayons été la seule équipe à porter Mozilla. Nous nous attendions à ce qu'il y ait quelques autres groupes à relever le défi dans le monde, mais personne d'autre n'a été aussi curieux.

Nous avons pensé à un KMozilla depuis le début mais nous avons décidé de ne pas le faire. Il vaut mieux améliorer notre propre navigateur Internet qui est propre et rapide, au lieu de s'empêtrer dans l'énorme mozilla, surtout depuis que nous avons un client mail décent et un lecteur de news. Etant donné que Mozilla n'intègre pas le support de Java, il n'a pas d'avantages par rapport au navigateur integré de KDE.

Gaël: Il y a eu quelques discussions concernant KGimp (un port de Gimp pour KDE) : existera t-il un jour ? Et sinon pourquoi ?

Matthias:En réalité, il n'y a jamais eu un véritable KGimp. J'ai fait un exposé au Linux Kongress 1998 à Cologne sur la programmation en fonction de multiples bibliothèques graphiques, la technique que nous avons utilisé pour le portage de LyX de XForms vers KDE. Mais comme KLyX était déjà fini et complètement porté, je voulais apporter un autre exemple. J'ai donc réalisé ce hack d'une journée qui a engendré un nombre affreux de discussions. C'était vraiment amusant : les gens ont discuté des centaines d'heures à propos de quelque chose qui m'a demandé moins d'une journée à réaliser :-) La véritable sortie a été repoussée maintes et maintes fois, principalement parceque je n'ai pas trouvé le temps pour tout intégrer dans une installation `autoconf' propre. De plus, je voulais attendre la sortie de Gimp-1.0. Quoi qu'il en soit, Gimp-1.0 est sorti il y a quelques temps et les mainteneurs de Gimp envisagent d'incorporer des options de compilation pour KGimp dans la distribution officielle de Gimp. Peut-être que cela aura déjà eu lieu quand cette interview sera publiée.

Gaël: Y aura t-il un KEmacs ?

Matthias: XEmacs est l'éditeur favori pour beaucoup de développeurs KDE. D'un autre part, certains développeurs de XEmacs ont également montré un intérêt pour l'intégrer à KDE. L'avenir de KEmacs apparaît donc relativement clair

Gaël: Quand KOffice sera t-il suffisamment mûr pour devenir un sérieux concurrent à MS-Office ? :-)

Matthias: La question n'est pas d'attendre que les choses arrivent, mais de faire en sorte qu'elles arrivent. La règle est simple : davantage de développeurs actifs signigie plus de logiciels, plus rapidement. Pour moi, un concurrent sérieux de MS-Office serait un système que je pourrais utiliser pour faire mon travail. Dans le monde réel, un concurrent sérieux de MS-Office doit avoir strictement la même apparence et doit échanger des données *exactement* de la même façon, toujours en modifiant le format de fichier propriétaire. Dans cette optique, KOffice ne sera probablement jamais un concurrent "sérieux", il sera beaucoup mieux ;-)

Gaël: Après avoir créé LyX, l'interface graphique pour LaTeX, tu l'as porté en KLyX. Est-il maintenant aussi pratique à utiliser qu'un traitement de texte (de type `Word'), ou est-il destiné à ceux qui sont déjà habitué à utiliser LaTeX ?

Matthias: Pas du tout ! Je ne le recommenderais même pas à quelqu'un qui se sert déjà de LaTeX. Les cas pour lesquels LyX se montre très forts sont les documents longs et complexes, avec beaucoup d'équations, d'images, de références croisées, de tableaux, de notes de pied de page etc. En d'autres mots, le genre de documents que `Word' ne sait pas gérer correctement, par exemple une thèse de doctorat. Bien entendu, on peut également écrire une lettre très facilement avec LyX. Mais ce n'est pas un logiciel de PAO, ce que la plupart des gens recherchent en fait quand ils parlent de traitement de texte.

Gaël: Que penses-tu de la décision de Red Hat Software de ne pas adopter KDE comme interface graphique standard pour leur distribution Linux ?

Matthias: Chaque société possède un marché cible, ce qui est le cas de Red Hat. La plupart des distributions Linux ciblent le marché de l'utilisateur de base - des gens qui travaillent ou s'amusent avec linux - ou les développeurs de Logiciels Libres. Un utilisateur veut tout ce qui lui est utile et qui rend son travail plus agréable et plus productif. Un développeur de Logiciels Libres veut tous les outils qui vont lui permettre de créer des logiciels mieux et plus puissants en un minimum de temps. Red Hat a trouvé un autre marché : les gens qui veulent un système d'exploitation peu onéreux dans le but de développer et de vendre des applications propriétaires avec. Bon, cet objectif est encore compatible avec une distribution qui contiendrait KDE. Mais le client de Red Hat est encore plus spécial. Il n'est pas capable de lire le détail des licences des bibliothèques utilisées dans la distribution [NdT : non compatibles avec une utilisatiion commerciale] et il ne souhaite en aucun cas payer à nouveau, que ce soit la communauté du Logiciel Libre ou les développeurs des outils qu'il utilise. Pour permettre cela, la distribution ne doit contenir aucune bibliothèque GPL, ni la boite à outil Qt. Red Hat est une société commerciale, elle est libre de satisfaire sa principale cible de marché. Néanmoins, vue la [NdT: petite] taille de ce marché, je pense qu'ils commettent une grosse erreur.

Gaël: Penses-tu que ce serait une bonne chose si KDE devenait _le_ bureau graphique standard pour Unix et plus spécialement Linux ? Penses-tu que ça arrivera un jour ? :-)

Matthias: C'_est_ déjà l'interface graphique libre standard pour Unix. Je reconnais que c'est une réponse un peu détournée car c'est la seule interface graphique qui répond à la définition que nous lui donnons actuellement ;-) Quoi qu'il en soit, il faut distinguer KDE : le code, et KDE : le `look and feel' et ses protocoles. Il existe déjà une bibliothèque Tk étendue qui permet de créer des applications conformes à KDE en Tcl en utilisant une boite à outil graphique qui n'a rien à voir. A l'avenir, nous pourrions tout aussi bien en avoir une version gtk qui permettrait d'adapter en douceur le `look and feel' [NdT: des applications Gtk] au bureau KDE. Un `look and feel' et un protocole standards sont bien plus importants qu'un code de base similaire. Je suis confiant dans le fait que KDE aura suffisamment d'inertie et d'influence pour imposer ce genre de choses.

Gaël: Que penses-tu de l'avenir de Linux et de KDE ? Penses-tu que Microsoft devrait commencer à s'inquiéter ?

Matthias: Et bien, ironiquement j'aimerais faire remarquer qu'à chaque fois qu'un projet lié à Unix était sur le point de connaître un succès, quelqu'un a toujours trouvé le moyen de le diviser. C'est arrivé aussi bien dans le domaine commercial que dans celui du Logiciel Libre. Statistiquement, Microsoft n'a donc aucun soucis à se faire. J'espère néanmoins que Linux et KDE sont prêts à casser cette règle.

Gaël: Quel a été ton premier ordinateur ?

Matthias: J'ai eu mon premier contact avec un ordinateur pendant des vacances d'été au Danemark. J'avais à peu près 12 ans, la machine était un Amstrad CPC464. Le père de mon ami danois - à qui appartenait la machine - nous a appris la programmation en basic, c'était vraiment fascinant ! Juste après être rentré en Allemagne, j'ai acheté un C64 [NdT: Commodore 64] (avec deux de mes frères parceque c'était très cher). Après des années à programmer en assembleur 6510 j'ai complètement arrêté l'informatique. À la place, j'ai changé de type de clavier et j'ai fait de la musique - jusqu'à ce que je commence mes études en informatique quelques années plus tard.

 

L'interview a été réalisée par email en septembre 1998.
La traduction en français a été réalisée par l'interviewer avec l'assistance de Sébastien Blondeel.
Tout ou partie de cette interview de Matthias Ettrich par Gaël Duval peut être reproduit et redistribué, dans n'importe quel média, qu'il soit physique ou électronique, à condition que cette note subsiste de façon intacte sur chaque copie.

1998 Gaël Duval

[ Haut de la page ] - [ Retour ]


[ Home Page ] - [ Introduction ] - [ Sommaire ] - [ Pourquoi Linux ] - [ Qu'est ce que Linux ? ] - [ Qui, Quoi, Ou ? ]
[
Les indispensables ] - [ Guide des commandes ] - [ Mes lectures ! ] - [ Documentations ]
[
Linux sur le WEB... ] - [ Spéciales Bookmarks... ] - [ Trucs & Astuces ] - [ Glossaire ]