I. Retranscription de l'interview

Matthias Ettrich, bonjour.

Bonjour.

Pouvez-vous vous présenter ?

Bien sûr. Vous venez de dire mon nom. Je m'appelle Matthias Ettrich, je suis un développeur allemand, né en 72, j'ai fait mes études à Tübingen, dans le sud de l'Allemagne, en informatique, et un jour j'ai découvert cette petite bibliothèque appelée Qt, développée par une société norvégienne appelée Trolltech, qui comptait 5 ou 6 salariés, en version 0.95, et je me suis dit que c'était un toolkit qui allait nous aider à améliorer Linux sur les ordinateurs de bureau. En fait c'est la chose que nous attendions tous. J'ai donc démarré le projet KDE, qui fête cette année son 10ème anniversaire.

Vous êtes donc le père de KDE ?

Oui, le père initial. J'ai apporté des améliorations à Linux et rapidement 20 à 40 personnes se sont jointes au projet. Après avoir terminé mes études 2 ans plus tard, j'ai rejoins Trolltech. A l'origine j'y suis allé pour améliorer Qt afin qu'il convienne mieux à KDE, et puis j'y suis resté. J'ai donc vécu à Oslo ces 8 dernières années, évoluant lentement au sein de la société de simple développeur et mainteneur jusqu'à être un développeur senior, un chef d'équipe, et puis un jour j'ai pris en charge l'équipe de développement. Aujourd'hui je suis le VP de l'ingénierie VP voulant dire «very pointy» (très pointilleux), Vice Président, mais j'essaye toujours d'écrire du code. Cette année j'ai déménagé à Berlin. Trolltech a ouvert des bureaux de développement à Berlin et j'y travaille donc comme manager général, VP, responsable développement et développeur.

Et aujourd'hui vous êtes conférencier pour les Trolltech Developer Days nous sommes à Munich, et à San Jose, pour le prochain évènement, il y aura un autre intervenant qui s'appelle Bjarne Stroustrup, le créateur du C++

Tout à fait.

Pouvez-vous dire quelque chose à propos de la participation de Bjarne Stroustrup à un évènement sur Qt ?

Trolltech et Bjarne Stroustrup ont une sorte de relation. Il y a quelques années, je ne me souviens plus quand cela s'est produit, en 2001 ou 2002, nous avons soudainement reçu une commande, quelqu'un nous commandait une licence et il s'appelait Bjarne Stroustrup. On a alors pensé «Wahou, est-ce pour de vrai ?» «Dieu nous commande une licence!» Nous étions très contents, et bien sûr nous lui avons demandé «Pourquoi achetez-vous une licence, que faites vous avec ?» Et il s'est avéré qu'il aimait vraiment Qt, qu'il l'avait évalué et utilisé pour enseigner le C++ aux débutants. Et nous avons pensé... C'est un super conférencier, beaucoup de choses se passent dans le monde C++ en ce moment avec la prochaine génération, et nous sommes simplement très contents qu'il puisse faire cela pour nous. Donc il est en fait un utilisateur de Qt.

Pour les utilisateurs il y a quelque chose d'étonnant avec Qt c'est qu'il s'agisse d'un produit sous GPL, un produit open source Trolltech gagne de l'argent avec un produit sous GPL Comment est-ce possible ?

La principale fausse idée vis à vis du logiciel libre, de l'open source, Richard Stallman, le père de la GPL ou fondamentalement le père du mouvement libre continue de dire que... Le problème est qu'en anglais il n'y a qu'un seul mot pour dire «free». Quand vous dites «free software» et «Free Software», l'un désigne un logiciel qui est exempt des frais, un logiciel pour lequel vous ne payez rien, et l'autre désigne un logiciel qui est libre dans le sens de la liberté de parole. Je crois qu'en français les mots sont différents : gratuit et libre. Donc, Qt est un logiciel «free» dans le sens de la liberté, pour la liberté qu'il vous donne, et dans ce sens, il est aussi gratuit. Cependant, si vous utilisez notre produit, parce que c'est un framework de développement, quand vous écrivez une application qui utilise notre logiciel, notre logiciel devient membre de votre logiciel, et donc, si vous écrivez une application de cette manière, par exemple si vous écrivez un navigateur web avec Qt et que vous le redistribuiez à vos clients, notre logiciel, Qt, en fait aussi partie. Donc dans ce sens, nous exigeons, ou plutôt la GPL exige que vous donniez à vos utilisateurs le même degré de liberté que nous vous avons donné. En d'autres termes, ils doivent pouvoir obtenir tout le code source, ils doivent pouvoir le distribuer, le modifier, le lire, apprendre à partir de lui, faire ce qu'ils veulent avec tant qu'ils préservent la liberté envers leurs utilisateurs. Si vous ne souhaitez pas cela, par exemple, si vous êtes une société commerciale qui fabrique et vend des produits propriétaires, vous ne pouvez pas utiliser la version open source de Qt. Donc, dans ce cas, vous m'achèteriez une licence qui vous donne la permission, le droit de faire des logiciels propriétaires avec Qt.

Trolltech est donc lié à la communauté open source en particulier au projet KDE

C'est exact.

Quelle est l'implication de Trolltech dans le projet KDE ?

Trolltech, très tôt, avant que je ne rejoigne Trolltech, s'est intéressé au projet KDE car alors que la société était encore petite, et qu'elle n'avait que quelques utilisateurs, la communauté KDE était très très grande. Nous étions des centaines et nous fournissions un cas d'étude, beaucoup de retours sur le produit ce qu'il lui fallait, les fonctionnalités nécessaires. Donc nous, en tant que projet KDE, avons donné à Trolltech des retours très profitables sur comment améliorer le produit, et plusieurs développeurs de KDE ont par la suite rejoins Trolltech pour y travailler. Et même plus encore la communauté KDE a diffusé la connaissance à propos de Qt. Je pense qu'environ 20% de nos clients ont entendu parler de Trolltech et de Qt via la communauté open source. La place du bouche à oreille est donc importante. Dans l'autre sens, Trolltech a eu raison de sponsoriser dès le début des parties de KDE. Je crois que nous avons acheté les noms de domaine, nous avons sponsorisé des conférences sur le développement, comme ce «séjour en cabane» où nous avons réuni plein de développeurs KDE quelque part dans les forêts en Norvège, durant toute une semaine, pour bidouiller KDE tous ensemble. Nous ajustons Qt pour qu'il corresponde mieux à KDE, il s'agit donc vraiment de donnant-donnant. Au final KDE est un utilisateur de Qt, c'est donc dans un sens une relation de client à client qui n'est pas simplement basée sur le prix, mais met en jeux d'autres choses que l'argent comme les retours, l'information, le bouche à oreilles, bref, ce genre de choses.

Trolltech et Qt sont donc bien établis sous Linux, qu'en est-il de Windows et de Macintosh ?

Hum... Nous pouvons appeler les choses par leur nom. Si vous regardez le nombre de développeurs qu'il y a en C++, les développeurs qui la plupart du temps utilisent C++, beaucoup d'entre eux développent sous Windows. Et ça doit faire, je ne sais pas, 3 millions de développeurs qui utilisent C++ la plupart du temps. Et sur ceux là, seulement une très petite proportion a entendu parler de Qt, et c'est seulement cette petite proportion qui utilise réellement Qt et achète Qt. Notre part de marché est donc très très petite à ce stade. Mais si vous regardez la valeur ajoutée technique que nous apportons, beaucoup beaucoup plus de sociétés devraient utiliser Qt. Ce n'est pas comme une fonctionnalité à ce niveau, c'est réellement... Et bien c'est toujours très peu connu auprès des développeurs Windows.

Mais par le passé, Qt sous Windows était gratuit en version 2.3 Avec Qt 3 vous n'avez pas reconduit cette version gratuite, pourquoi ?

Ce que nous avons fait avec Qt 2.3... Il y avait beaucoup de personnes qui voulaient jouer avec Qt sous Windows, faire quelque chose avec, et donc nous avons fait ce test avec... Vous l'avez appelé la version gratuite, mais ce n'était qu'une version non commerciale, ce n'était pas un logiciel libre, c'était juste... que ça ne coûtait rien de s'amuser avec. Mais cette version était... Parce que ce n'était pas un logiciel libre, dans le sens de liberté, ce n'était pas une licence compatible avec les logiciels GPL sous Linux, alors que les gens qui étaient les plus intéressés dans le port d'applications vers Windows étaient ceux qui écrivaient des logiciels sous GPL sous Linux. Et ils ne pouvaient pas faire cela avec cette version. Le fait est que cette version n'était pas beaucoup utilisée, et qu'il n'y avait pas de grosse communauté Windows «Nous voulons utiliser ça, nous voulons écrire des logiciels avec.» Donc ce n'était pas la peine pour nous de continuer et c'est pourquoi nous avons, plus tard avec Qt 4, dit ok, maintenant nous faisons les choses correctement. Nous avons tout placé sous GPL, sous toutes les plateformes y compris Microsoft Windows.

Mais il y avait un projet appelé «Qt3 Windows Free Edition» qui avait pour but de porter Qt 3 Linux sous Windows est-ce que ce projet a influencé votre décision de restaurer Qt 3 sous Windows ?

Je ne me souviens pas très bien... Nous savions qu'il y avait un besoin de le ramener sous Windows. Il ne s'agissait pas tant des autres systèmes ou d'être multi-plateformes, mais... Les gens ne s'occupent pas, par exemple... Nous étions davantage ennuyés par le fait que les gens ont porté par exemple, je sais pas, des programmes GTK comme The Gimp. Ils ont en porté d'autres sous Windows, et ce n'est pas si bien que ça sous Windows, ce n'est pas encore une référence, parce que bien que GTK soit un autre excellent toolkit, il n'est pas vraiment portable. Alors que les applications basées sur Qt étaient complètement portables, vous pouviez simplement prendre le code - si vous utilisiez uniquement Qt - et le porter sous Windows ou Macintosh. Et les gens ne pouvaient pas faire ça, parce que ce n'était pas libre sous les autres plateformes. Donc bien que Qt soit multi-plateformes, la communauté open source n'en tirait aucun bénéfice et c'était très navrant de constater cela. Je suis donc content que nous ayons pu mettre fin à cela. Pour en revenir à ce projet open source qu'ils ont porté, notre principal souci était qu'il y avait seulement... Que des gens recherchant Qt sur l'Internet risquaient de trouver cette version et de dire «Oh Qt pour Windows génial je l'essaye» et qu'ensuite la qualité n'étant pas ce qu'une société commerciale ferait ils pensent «Comment peuvent-ils vendre ça, qu'est-ce que c'est ?» C'était donc plutôt la réputation. Car il y avait d'autres manières de tomber dessus, le nom déposé est présent partout. C'était donc plus... Nous voulions réellement que Qt soit libre, aussi libre que possible, c'est toujours notre préoccupation.

Le but de ce projet était de porter KDE sous Windows. Cela fait maintenant plus d'un an que Qt 4 est sorti et beaucoup de monde semble encore utiliser Qt 3 savez-vous pourquoi ?

Il y a la responsabilité de KDE bien sûr. Avant de porter une application KDE, il faut d'abord porter les bibliothèques KDE. Les applications KDE n'utilisent pas seulement Qt, elles utilisent aussi un ensemble de bibliothèques KDE. Et donc, ces dernières doivent d'abord être migrées vers Qt 4. Le passage de Qt 3 à Qt 4 demande du travail, ce n'est pas une simple mise à jour, c'est incompatible. C'est une nouvelle version majeure. Vous ne pouvez donc pas porter des applications KDE avant d'avoir porté le framework KDE. Et ce framework est délicat à porter parce que nous l'avons développé en pensant à Linux ou aux systèmes Unix, et il est très lié aux possibilités de Linux. Et beaucoup de ces choses, vous ne les trouvez pas sous Windows. Et donc vous retrouvez avec quelque chose d'inabouti. Mais cela va aboutir, vous verrez des bibliothèques KDE qui sont hautement portables avec KDE 4. En ce qui concerne les développeurs commerciaux, une année n'est rien du tout. Vous savez on a toujours une planification de projet en avance. Nous avons sorti Qt 4 il y a un peu plus d'un an, et on peut voir maintenant aux Developer Days, aujourd'hui, on peut voir que la plupart de nos clients utilisent désormais Qt 4. Il faut toujours une année ou deux pour passer à une nouvelle version.

Nous devrions donc voir bientôt des projets KDE sous Windows et Macintosh ?

Oui, je le pense, je pense qu'on verra bientôt cela. On commence à voir un certain nombre de nouvelles applications développées avec Qt sur toutes les plateformes, et j'espère qu'on en verra plus encore dans la mesure où le monde s'étend.

Avez-vous une idée du nombre ou du pourcentage de personnes qui utilisent toujours Qt 3 ? Car sur nos forums, nous rencontrons toujours de nombreuses questions relatives à Qt 3 et les gens semblent mettre du temps à passer à Qt 4 Savez-vous pourquoi ?

Et bien, je pense que c'est principalement la faute à KDE, car les développeurs d'applications KDE doivent attendre sa sortie et tant que KDE n'est pas disponible en version 4, ils ne peuvent pas migrer. Et puis aussi, pour être honnête, Qt 3 était un bon toolkit. Il est toujours convenable de l'utiliser de nos jours. Je pense très honnêtement qu'il faudra quelque chose comme deux ans pour passer à une nouvelle génération de plateforme. Ce n'est du tout pas un énorme délai. Et les gens utilisent toujours Windows 95 et 98. Les choses ont juste besoin de temps.

Est-ce que Trolltech aide ou encourage d'autres projets open source basés sur Qt ?

Basés sur Qt...

Ou sur des technologies Trolltech ?

Purement Qt, autrement que KDE, pas énormément, non, pas vraiment. Mais il y a un certain nombre d'autres choses que nous soutenons et qui sont relatives à Qt, même si elles n'utilisent pas Qt. Par exemple D-BUS est une technologie que nous encourageons. Nous soutenons aussi les bindings Qt, et nous encourageons l'ensemble des efforts relatifs au LSB qui est une standardisation de Linux : Linux Standard Base. Nous avons aussi sponsorisé Debian par exemple, il y a eu une importante conférence Debian à Oslo il y a quelques temps où nous étions le principal sponsor. Nous travaillons aussi maintenant avec Eclipse, on essaye d'intégrer Eclipse qui est aussi un projet open source. Nous faisons donc un certain nombre de choses, et nous allons certainement faire davantage dans le futur.

Maintenant, j'aurais une question au sujet d'Adobe. Vous êtes fiers de compter Adobe parmi vos clients. Mais Adobe semble perdre de l'intérêt pour Qt, car ils développent maintenant leur propre framework C++, qui est un framework open source baptisé ASL. Que pouvez-vous dire à ce sujet ? Quelle est votre opinion ?

Par rapport au fait que Qt soit utilisé dans Adobe Photoshop Album, nous sommes bien sûr fiers de cela parce que c'est une application Windows de premier ordre, respectant complètement les recommandations Windows. Si vous téléchargez Acrobat Reader pour Windows ils suggèrent, si vous ne décochez pas, vous téléchargez aussi Photoshop Album et c'est vraiment une super application. Mais Adobe est une énorme société, avec de nombreuses équipes différentes de nombreux groupes, et aussi suffisamment de développeurs pour faire du développement maison. Donc cela relève plus du contrôle que des fonctionnalités, du prix ou de la productivité. Pour être honnête, je ne suis pas en position de dire à Adobe ce qu'ils devraient faire. Je pense qu'ils ont fait une erreur en se lançant dans une technologie GUI multi-plateformes. Peut être qu'ils feront mieux cette fois-ci qu'ils l'ont fait auparavant. Si je regarde un de leur produit phare qui est Adobe Acrobat Reader, la version Linux n'est pas du tout comparable à la version pour Windows. Elle est très lente, elle est très gourmande, elle est simplement mauvaise, j'espère qu'ils feront mieux. Une société comme Adobe peut se permettre de développer une solution maison. Et les solutions maison pour logiciels multi-plateformes sont les plus grands concurrents de Qt. Ce n'est vraiment pas les autres technologies. Le plus gros obstacle sont les entreprises qui pensent «Une interface multi-plateformes, est-ce si difficile que ça ?» Au début c'est facile, mais quand on entre dans les détails, on se rend compte de quel genre de pagaille il s'agit, ça devient vraiment difficile à maintenir. Adobe a les reins assez solides pour faire ça, les autres non.

Prenez l'exemple d'OpenOffice. Il y avait une technologie développée par une société allemande appelée Star Division, rachetée ensuite par Sun Microsystems. Ils avaient leur propre technologie multi-plateformes faite maison, qui en 95, 96, 97 était ce qu'on faisait de mieux. Aujourd'hui, OpenOffice donne toujours cette impression de dater des années 90. Il n'est pas très beau sous Macintosh, il utilise des choses dépassées, et il n'évolue pas vite. Pourquoi ? Parce qu'il arrive un moment où vous atteignez la limite de votre abstraction. Et chez Trolltech avec Qt, vous avez une société qui est spécialisée dans les interfaces utilisateur graphiques multi-plateformes. C'est notre principale activité, c'est une source de profit pour nous. Nous ne le faisons pas parce que nous en avons besoin, nous le faisons parce que c'est notre raison d'être, en tant que société. Je pense donc que si vous développez des logiciels multi-plateformes, vous faites une erreur si vous n'utilisez pas Qt.

Et maintenant, sous Windows, Microsoft effectue beaucoup de promotion autour de .Net. Le marché de .Net semble grossir. Que pensez-vous de la part grandissante de .Net sous Windows et du futur incertain du développement C++ natif sous cette plateforme ?

Il faut distinguer plusieurs choses. Vous avez .Net, dont personne ne sait ce que c'est. Je crois avoir vu une version de Windows CE sur PocketPC pour .Net, alors que ça n'a rien à voir. Donc il y a ce grand flou marketing «Wahou un truc génial et nouveau : .Net». Et puis il y a le Common Language Runtime - CLR - et les langages qui compilent vers ça. Et puis il y a aussi des frameworks comme la nouvelle couche de présentation de Windows. Qu'est-ce que je pense de tout ça ? En allemand on dit «On ne mange jamais aussi chaud que l'on cuisine» Et ils font marche arrière. Vous savez ils ont introduit Windows.Form «Wahou super!» et il y a juste 2 ans «Ahhh ce n'était pas si bien que ça on va bientôt faire quelque chose d'autre». Microsoft n'a toujours pas migré Microsoft Office en .Net, ou Internet Explorer, ou n'importe lequel de leur pièce maîtresse. Et ils ne sont pas tout seuls, ils ont de gros clients comme Adobe, Oracle, SAP, vraiment tout le monde, qui font du développement natif en C++, et ce n'est pas en train de changer. Prenez d'autres appareils comme les téléphones portables. Nous avons le GreenPhone : une pile de développement complète sur un téléphone portable, parfaitement rapide, utilisable et élégante. Les gens nous ont parlé de téléphones Java et certainement de téléphones .Net pendant des années. Et maintenant, où sont ces appareils ? Il y a donc toujours de la place. Si on peut faire autant avec le CLR, on pourra toujours faire davantage avec des applications natives, et cela n'est pas du tout prêt de changer.

Que pensez-vous donc de C++/CLI ?

C'est une fonctionnalité «à cocher», personne ne l'utilise vraiment. Nous étions à la conférence sur le développement de Microsoft, une conférence internationale - bien plus importante qu'ici bien sûr - remplie de développeurs et ils ont posé la question «Qui programme avec quel langage» avec C#, et ils ont aussi posé la question «Qui utilise ce C++/CLI ?» et je crois qu'une ou deux personnes ont levé la main et le conférencier a dit «pauvres gars». Je ne pense pas que ce soit quelque chose de sérieux. Je pense que c'est une technologie intéressante mais elle n'a pas d'avenir. Si vous utilisez CLI pour la première fois, C# est un bon langage. Ou même mieux utilisez Java.

En ce qui concerne C# et Java, vous avez sorti QtJambi Avez-vous prévu de faire quelque chose pour C# ? Pourra-t-on intégrer et utiliser des WinForms avec Qt ?

Je ne crois pas vraiment au futur des WinForms, et il semble que Microsoft non plus. Pour ce qui est de Jambi, Java face à C#, techniquement nous pouvons faire les deux, les technologies sont très similaires. Tout ce que nous avons fait avec Jambi nous pouvons le prendre et l'adapter pour le CLR. Nous avons eu de longues discussions à propos du langage de départ. La technologie Java est bien établie et se porte très bien. Et cette arrivée nouvelle de .Net avec Mono du côté de Linux qui ne sera pas encouragée. Nous pensons que Java est le bon choix parce que Java est complètement multi-plateformes. Ce sera encore meilleur quand Sun rendra Java open source, ils ont parlé de cela, ça devrait se produire. Le problème avec C# avec CLI est qu'il y a toujours l'implémentation de Microsoft sous Windows, et puis il y a la tentative de cloner Mono sur les autres plateformes. Et ils seront toujours un petit peu à la traîne. Chez Trolltech nous vivons dans un monde multi-plateformes, et Java est donc beaucoup plus adapté. Les langages sont très comparables, oui, peut être que C# a des avantages ici et là, idem pour Java. Mais ils sont si proches tous les deux que cela n'a pas vraiment d'importance. Nous avons donc de sérieuses croyances dans le support de Java.

L'année prochaine, Windows Vista sera disponible, et il apportera d'importantes améliorations au niveau de l'interface graphique. Vous avez dit qu'il s'agissait là de votre principale activité. Sera-t-il possible de profiter de ces améliorations avec Qt ?

Il nous faut suivre, il nous faut implémenter certaines des choses que Microsoft a fait dans ses applications. A l'heure actuelle, une application Qt sous Vista a l'air tout à fait normale. Elle est très ressemblante à une application Vista, il n'y a pas beaucoup de différences. Mais on voit que... En même temps avec Vista ils ont introduit de nouveaux... Microsoft a introduit de nouveaux concepts d'interface utilisateur depuis Office 12, par exemple le composant ruban, de nouvelles façons de travailler avec les logiciels. Il nous faudra donc fournir davantage de composants pour faciliter l'écriture de logiciels. L'autre chose qui nécessite du travail de notre part concerne les animations. Vista possède beaucoup de petites animations, comme lorsque vous ouvrez quelque chose : des adoucis et des transitions... Et Qt aujourd'hui ne supporte pas tout cela. C'est donc quelque chose sur lequel nous devons travailler pour Qt 4.3, la prochaine grosse version qui sera finalisée au cours du deuxième semestre 2007.

Avec Vista il y aura aussi de nouvelles technologies comme XAML. Il semble qu'avec Qt vous faites d'une certaine manière la même chose avec SVG et les Style Sheets. Allez vous adapter ces technologies Windows et essayer de les apporter sous toutes les plateformes, de cloner ces technologies dans Qt, ou allez vous essayer d'utiliser les technologies natives de Windows Vista ?

Nous devrons utiliser nos propres technologies car nous devons faire des technologies multi-plateformes, et une application écrite avec Qt doit fonctionner aussi bien sous Linux que sous Macintosh. Il nous faut donc faire cela nous mêmes. XAML n'est pas... Il n'y a aucune magie, c'est juste un fichier UI descriptif xml avec un peu de logique. Nous avons un moteur de scripting avec QSA et nous travaillons sur une nouvelle génération QSA2. Nous pouvons donc faire beaucoup de ces choses nous même. Mais où cela se terminera exactement personne ne le sait. Il reste aussi à voir comment ces nouvelles technologies sous Windows seront adaptées par la communauté de développement. Les choses, comme nous en avons parlé auparavant, ont toujours besoin de temps pour être adaptées.

Mais toutes ces technologies : SVG, Style Sheets, QSA... Et vous avez introduit une API à la Java avec Qt 4. Quelle sera la place du C++ dans le futur de Qt ? Le «véritable» C++

La colonne vertébrale de ce que nous faisons est le C++, sous de nombreuses formes pour nos clients. Je pense que l'interrogation porte sur notre venue sur de nouveaux marchés qui utilisent Java avec Jambi. La beauté de Jambi est que, disons que vous écriviez une application Java avec Qt et que vous rencontriez des problèmes de performance, et bien vous pouvez en prendre le coeur et décider «Ok, j'implémente ça en C++» et utiliser ces composants avec Jambi. Nous combinons donc vraiment ces deux mondes Mais en ce qui concerne... C'est un modèle que l'on rencontre souvent dans la «véritable» industrie, comme EVA ou le graphisme. Ils utilisent des applications C++ mais ils construisent des applications dynamiques donc ils font du scripting : Tcl, Java Script, Python pour combiner ces composants. Il y a donc toujours un aspect dynamique dans ces applications Mais il y a... Les gens voient rarement ce monde du logiciel. Si vous faites le tour des développeurs ici, que vous discutez avec nos clients de ce qu'ils font, il est épatant de voir le genre de logiciels complexes et sûrs qu'il y a. Un logiciel de contrôle de l'espace aérien pour un aéroport. Comment pilotez-vous une centrale nucléaire ? Comment concevez-vous un schéma de puce ? - l'un de nos grands clients. Des appareils de mesure pour processus industriels. Des logiciels de pilotage d'un microscope au niveau atomique... Il y a tant de complexité dans ces choses que les gens ne voient pas, ils se disent «Oh un logiciel, c'est sur le web, du commercial» ce avec quoi ils travaillent et... peu de gens ont conscience de cet univers de logiciels complexes qui fait tourner le monde, dans les avions, et s'attendent à de la sécurité. Ou un marché boursier, ou n'importe lequel de ces gros systèmes. Et il s'agit là de logiciels en C++.

En ce qui concerne C++, la prochaine version de C++ dont le nom de code est C++0x est en préparation, le comité y travaille. Vous sentez-vous concernés par ce prochain standard en préparation ?

Pas du tout. Ma seule préoccupation est que ça ne sera probablement pas 0x, je pense que c'est parti pour être 1x. Cela va juste être plus long, mais ils ont fait des choses très intéressantes, par exemple... Le piège des templates à l'heure actuelle, ce pourquoi nous avons été très vigilant avec les templates, est que vous obtenez des messages d'erreur insupportables, que personne ne comprend. Parce que vous ne pouvez pas mettre une précondition sur le type de données utilisé pour instancier ce template. Vous obtenez donc des messages bizarres profondément enfouis, c'est ce qui se passe quand vous utilisez la STL. Ils ont donc corrigé cela, et les templates vont donc devenir bien meilleurs. Et puis ils ont aussi un élégant type «auto». Quelque fois quand vous avez... Oui vous voyez de quoi je parle. Juste des petites choses comme cela, qui rendent le développement plus facile, et tout cela en restant 100% compatible. J'aimerais avoir 0x ou 1x dès aujourd'hui. C'est une bonne amélioration du langage, sans aucun doute.

Dernière question. Vous êtes l'expert sur Qt, un des...

Un des plus célèbres, oui.

J'ai donc une question pour expert tel que vous.

Oh c'est la question surprise!

Avec Qt 4.2, dans le fichier qstring.h, à la ligne 388, pourquoi avez-vous remplacé la boucle loop par une boucle while ?

(rires)
Nous sommes dans une chaîne de caractères, nous sommes dans des fonctions en ligne, que pouvons-nous faire... Ca ne peut pas être indexOf() parce que nous l'avons implémenté ailleurs... Avons-nous une boucle while dans ce fichier d'en-tête, dans QString vous êtes sûr ?

Je ne suis pas sûr...

Je ne crois pas parce que les seules boucles que je puisse voir dans une chaîne de caractères est la fonction de recherche. Il se peut qu'il y ait une fonction qui recherche des caractères, mais on ne peut pas optimiser cela. Mais dès que l'on recherche une certaine sous-chaîne nous utilisons un algorithme de hachage pour plus de rapidité.

Vous êtes donc un véritable expert. Merci beaucoup.

Merci

II. Remerciements

Cette retranscription et sa traduction ont demandé beaucoup de temps et d'efforts. Je tiens à remercier tous ceux qui ont répondu présent a mon appel, en particulier :

avec une mention toute spéciale pour Miles, qui s'est aussi occupé de filmer cette interview.

Pour toute remarque concernant cette retranscription, merci de me contacter via le forum (Aurelien.Regat-Barrel) ou par mail : arb(at)redaction-developpez.com.

Si vous souhaitez simplement commenter cette interview, vous pouvez laisser un commentaire sur la page dédiée à cette interview.