Trolltech a annoncé récemment que sa bibliothèque graphique
Qt utilisera dorénavant
Phonon, la nouvelle bibliothèque multimédia créée par les développeurs de l'environnement de bureau libre
KDE. Cette nouvelle est très intéressante pour tous les utilisateurs de Qt4, pour des questions de simplicité et de portabilité ; mais c'est surtout le signe d'une collaboration accrue entre l'entreprise Trolltech et les projets libres qui l'entourent.
Qui est qui ?
Qt est une bibliothèque permettant aux programmeurs d'écrire des applications graphiques. Utilisée à la base en C++, elle est disponible dans plusieurs autres langages (Java, Python, Ruby...). Elle est libre et produit des interfaces utilisables sous la plupart des OS courants (Windows, Mac, GNU/Linux, BSD...) et adaptées à leur environnement. C'est la bibliothèque que M@teo21 a choisie pour
son cours de C++.
Trolltech est l'entreprise qui développe Qt. Fondée en 1994 par deux étudiants, elle emploie maintenant un peu moins de 100 développeurs, en Norvège, en Australie, en Californie, en Chine et en Allemagne. Sous l'influence du projet libre KDE, Trolltech a fait de Qt un logiciel libre en mettant en place une audacieuse politique de double licence : la licence libre (et gratuite) ne permet que de faire des logiciels libres eux aussi, et les éditeurs de logiciels propriétaires doivent acheter une licence commerciale. Ce modèle, repris entre autres par MySQL, assure une liberté complète de la bibliothèque, parallèlement à une bonne source de financement.
KDE est un projet d'environnement de bureau libre. Pour l'utilisateur, cela signifie une des "interfaces graphiques" courantes sur les distributions GNU/Linux, avec son grand concurrent, GNOME : bureau, menu, barre des tâches, panneau de configuration, etc. KDE propose aussi des applications pour les tâches courantes (explorateur de fichier / navigateur, éditeur de texte, lecteur PDF, etc.). Le projet KDE a développé pour cela un grand nombre de bibliothèques logicielles permettant d'écrire plus facilement des applications graphiques, et est ainsi accompagné par un grand nombre d'applications "externes", qui utilisent ces bibliothèques et s'intègrent donc très bien entre elles.
Depuis sa naissance, KDE utilise énormément la bibliothèque Qt. Il est donc très lié à cette bibliothèque libre et à Trolltech, l'entreprise qui la développe : par exemple, cette dernière a embauché quelques développeurs de KDE.
Phonon est une bibliothèque multimédia (son et vidéo) développée au départ par Matthias Kretz, un développeur KDE, en vue de la nouvelle version KDE4 (encore en développement, elle devrait être disponible courant janvier). Elle doit permettre aux autres développeurs d'intégrer facilement des sons ou de la vidéo à une application.
Il y a déjà un certain nombre d'autres bibliothèques spécialisées dans le son ou la vidéo. Par exemple, M@teo21 présente dans son cours de C la bibliothèque FMOD. Il existe aussi de nombreux projets libres comme
Xine ou
Gstreamer. Phonon ne réinvente pas la roue, mais s'appuie sur les bibliothèques existantes pour proposer des fonctionnalités unifiées aux développeurs. Ainsi, le développeur utilise les fonctions de la bibliothèque Phonon, qui appelle elle-même une bibliothèque multimédia en "arrière-plan" (qui est alors nommée le "backend").
Cela permet à l'utilisateur de choisir le
backend de son choix (un peu comme les jeux qui permettent de choisir OpenGL ou DirectX), sans que le programmeur aie à modifier une seule ligne de son code utilisant Phonon. S'en suit donc une plus grande stabilité pour le programmeur, et une portabilité accrue du code.
Le développement
L'aspect multiplateforme et simplificateur de la bibliothèque Phonon a beaucoup intéressé Qt. En effet, cette dernière utilise les mêmes ingrédients (portabilité et facilité d'usage), et propose déjà des fonctionnalités facilitant la conception de logiciels en tout genre (elle facilite par exemple l'utilisation du réseau, de processeurs multiples, de SQL, etc.).
Trolltech a donc proposé de supporter le développement de Phonon, ce que les développeurs KDE ont bien évidemment accepté, puisque cela leur apporte l'expertise de programmeurs supplémentaires. Phonon va donc être intégré à la nouvelle version de Qt, la 4.4 (encore en développement, qui va bientôt sortir), et des développeurs Qt sont donc dès maintenant payés pour travailler sur cette bibliothèque à temps plein. Trolltech espère finir au plus vite les backend (déjà en développement), permettant à Phonon d'utiliser les systèmes multimédias de MacOS (QuickTime 7) et Windows (DirectShow 9).
Localisation du projet
Le détail le plus intéressant de cette annonce est que Phonon reste lié au projet KDE : bien entendu, des développeurs KDE continueront à développer la bibliothèque, et discuteront avec Trolltech de son évolution pour leurs propres besoins. Mais plus généralement, l'ensemble du code de Phonon reste hébergé avec le code de KDE : au lieu de travailler sur Phonon dans leur coin, les ingénieurs de Trolltech vont donc collaborer directement avec les développeurs KDE.
Pour bien comprendre la particularité de cette situation, il faut avoir une idée globale du fonctionnement des projets libres collaboratifs (comme KDE) : les développeurs discutent à travers internet (par mails, sur IRC, etc...), et travaillent tous ensemble (tout en habitant aux quatre coins du monde) sur un même code source, qui se trouve sur un serveur central, un peu comme sur le SDZ, où une base de données contient tous les messages du forum (en pratique c'est souvent
un peu plus compliqué, et il existe des méthodes de développement décentralisé).
Trolltech a décidé d'intégrer la bibliothèque Phonon à ses propres bibliothèques Qt (donc à en assurer le support auprès de ses clients, etc...), mais de laisser le code source de Phonon sur le serveur de code source du projet KDE, pour que le développement reste ouvert aux développeurs de la communauté KDE.
Sources
Conclusion
Cette collaboration très étroite entre une entreprise de développement et un projet libre bénévole est extrêmement rare, et c'est une force propre aux modèles de développement libre. J'espère que cette nouvelle vous a intéressé, parce que son caractère novateur repose sur des questions de développement qui ne sont pas toujours faciles à saisir au premier abord.