Posts Tagged ‘Netbook Launcher EFL’

Unity, le point technique

mardi, février 1st, 2011

Après mon long article sur le support de Qt dans Ubuntu, je veux faire un court récapitulatif technique des différents Desktop Shell développés par Canonical. En effet, il y en a cinq au total, tous utilisant des technologies différentes, et il est donc relativement facile de s’emmêler les pinceaux et de ne plus savoir de quoi l’on parle.

Tableau récapitulatif des technologies utilisées :
Desktop ShellGraphismeGestionnaire de fenêtresLib. graphiquesLangagesDév. actifLicence
Netbook Remix Launcher3DMutterClutter + CluTKCNonGNU GPLv3
Netbook Launcher EFL2DMetacityEFL + GTKCNonGNU GPLv3
Unity v1 (branche 0.2)3DMutter
Clutter + CluTKC et ValaNon
GNU GPLv3
Unity v2 (branche 3.0)3DCompizNuxC++ et ValaOuiGNU GPLv3
Unity 2D2DMetacityQtC++ et QMLOuiGNU GPLv3

Le choix de la licence GNU GPLv3 est excellent et garantit que personne ne pourra rendre ces projets propriétaires, à l’exception notable de Canonical lui-même, puisque la signature d’une cession de droits d’auteur est nécessaire pour pouvoir y contribuer.

On ne peut que constater que Canonical n’a pas ménagé ses efforts en terme de recherche et développement. L’ensemble des technologies graphiques libres ont été évaluées et testées en pratique, et mises au service d’une volonté d’innovation ergonomique. Les choix faits par Canonical me semblent dès lors d’autant plus légitimes, car ce ne sont pas des actes gratuits faits juste pour troller, mais des conclusions objectives de mois de programmation et d’expérimentation.

Switch du C vers le C++

En fait, le plus remarquable est l’abandon du C en faveur du C++. On peut considérer que le choix technique du C, un langage de programmation non objet, pour faire des interfaces graphiques, par nature orientées objet, était le péché originel du bureau GNOME. Les bibliothèques passent du C (GTK, Clutter, CluTK et EFL) au C++ (Qt et Nux), tout comme le gestionnaire de fenêtres 3D qui passe de Mutter, écrit en C, à Compiz, qui vient d’être totalement réécrit en C++.

Enfin, d’autres technologies plus modernes font leur apparition, comme Vala, qui est le seul choix technique de Unity v1 conservé dans Unity v2, et QML, le nouveau langage déclaratif de description d’interfaces graphiques pour Qt. À titre personnel, l’idée d’utiliser QML m’est beaucoup plus sympathique que de programmer de l’OpenGL bas niveau avec Nux, et je suis donc vraiment séduit par Unity 2D.