Le blog de vetetix

F&BG, comme toujours

Affichage des articles marqués Code

Qt sous licence LGPL

Pas de commentaires

L’annonce qui a fait le plus de bruit aujourd’hui dans le monde des logiciels libres, c’est la mise sous licence LGPL du framework Qt. Ils en parlent un peu partout sur les blogs et les sites d’info technologique (pfiou, c’est dur de faire tout plein de liens — vous remarquerez que je laisse l’annonce officielle pour la fin — vous remarquerez aussi que j’avais dans ma phrase un mot de trop par rapport au nombre de liens que j’avais trouvé — j’ajouterai que je n’ai dans mon Google Reader aucun blog orienté Qt ou KDE, donc tout ça c’est juste de planet Gnome ou planet Ubuntu :-) .

Un peu de background

Les débuts

Qt a été créé il y a plus de 15 ans par Trolltech, et est depuis très longtemps sous une licence multiple : GPL et propriétaire (et très chère, autour de 5000$ par développeur et par plateforme si j’ai bien compris). Les développeurs avaient donc le choix entre payer très cher pour utiliser Qt pour faire un logiciel propriétaire (comprendre « pas sous GPL » — il était donc impossible pour un petit développeur de faire un logiciel Qt propriétaire), ou faire un logiciel sous GPL. C’est d’ailleurs le cas de l’environnement de bureau KDE et de tous ses composants (sauf les librairies KDElib ne dépendant pas Qt, qui sont sous LGPL).

Le rachat par Nokia

Nokia a fait l’acquisition de Trolltech il y a quelques mois. La firme Finlandaise, bien que leader mondiale sur le marché des téléphones mobiles, se retrouve bien embêtée par l’arrivée de Apple, avec son iPhone et son AppStore performants (et peut-être aussi par celle de Google avec Androïd, voire du possible renouveau de Palm). Nokia a des téléphones, mais pas de plateforme logicielle vraiment intéressante, ni d’écosystème de développeurs autour de ceux-ci. C’est pour cela qu’elle a racheté complètement Symbian (qu’elle est en train de le rendre open-source) et qu’elle a fait l’acquisition de Qt.

La véritable force de l’iPhone, c’est la myriade de développeurs qui s’investissent dessus pour créer des applications. Nokia a donc besoin de créer le même mouvement autour de sa propre plateforme. C’est pour ça qu’il open-sourcent Symbian, une plateforme open-source attirant plus de développeurs (à potentiel technique ou parts de marché égales). De même, pour facilité le développement d’applications, ils ont acheté Qt, sont en train de le porter sur Symbian, et y ajoutent une licence LGPL qui permet à tous les développeurs de l’utiliser gratuitement.

Ce que signifie réellement ce rachat

Les développeurs auront désormais la possibilité de créer des applications propriétaires en Qt sur Symbian, Androïd ou Palm (vu que ce sont des Linux), ainsi que sur tous les grands systèmes d’exploitation, car Qt est vraiment multi-plateforme. Cela diminuera leurs couts tout en augmentant la portée de leurs applications, ils devraient être contents.

Nokia devrait voir sa plateforme adoptée, ce qui veut dire que ses téléphones seront plus intéressants. Peu importe de ne pas faire de bénéfices avec Symbian et Qt, de toute façon ils vendent des téléphones, pas des logiciels. C’est soit ça, soit ils se laissent bouffer par l’iphone sur le marché des smartphones grand publics.

Si tout fonctionne bien, Symbian, l’OS nouvellement libre, devrait s’améliorer, donc le libre progressera. De même, Qt étant plus utilisé (et Nokia ouvrant le code aux contributions extérieures), il ne devrait que s’en améliorer. Une fois encore, le libre gagne.

Les bouleversements que cela crée

Jusqu’à présent, je parlais quasiment exclusivement de ce qui allait changer dans le monde des téléphones mobiles, smartphones et autres appareils portatifs, mais ce changement va avoir des conséquences sur les ordinateurs de bureau.

Gnome

Gnome est le « concurrent »[1] historique de KDE. Il n’est pas basé sur Qt, mais sur GTK+. En effet, au tout début Qt n’était pas libre, un environnement de bureau libre ne pouvait donc pas l’utiliser.

GTK+ a toujours été sous licence LGPL. Cela a permis de créer une sorte d’écosystème impliquant des petites boites qui développaient des applications en GTK+, et qui participaient au développement de celui-ci. C’est d’ailleurs l’argument principal qu’avançaient les développeurs Gnome ou GTK+ pour expliquer pourquoi ils ne voulaient pas développer en Qt. La GPL était trop restrictive pour eux et pour les boites qui les employaient.

Le problème, c’est que malgré cette implication d’entreprises commerciales censées apporter de l’argent, GTK+ n’a jamais été aussi performant que Qt, et a toujours été plus difficile à utiliser que ce dernier[2]. Le modèle économique de Qt semble donc avoir été plus efficace.

Cela tuera-t-il Gnome et GTK+ ?

Il semble assez clair (je m’avance peut-être un peu) qu’il est désormais plus intéressant pour une entreprise ou un développeur d’investir son argent ou son temps dans le développement d’applications en Qt que de faire la même chose en GTK+.

Je ne pense pas pour autant que ça va tuer GTK ou Gnome. Tout d’abord, avec les réflexions qui ont lieu en ce moment pour la création de Gnome 3, il est possible qu’ils sortent des concepts très intéressants et des fonctionnalités que KDE ne pourrait pas proposer, peu importe les considérations techniques au niveau du framework utilisé. D’ailleurs, c’est déjà vrai à l’heure actuelle et c’est ce qui me fait préférer Gnome à KDE. Gnome est plus simple, plus utilisable que KDE. Il est plus facile à prendre en main et à découvrir. KDE propose quelques fonctionnalités assez fun, comme les widgets sur le bureau ou l’intégration de base des effets 3D, mais il est vraiment trop complexe à utiliser. Sa souplesse et sa profusion d’options en font peut-être un très bon environnement pour certains, mais selon moi un débutant sous Linux ne peut absolument pas utiliser KDE (c’est d’ailleurs pourquoi Ubuntu a choisi Gnome et non KDE comme environnement par défaut)[3].

D’autre part je ne vois pas pourquoi, l’attention de certains développeurs étant redirigée vers Qt et KDE, cela devrait absolument détruire Gnome et GTK+. Les principaux développeurs de ces deux projets ne vont pas les abandonner du jour au lendemain. Ils maitrisent leurs technologies, et ont beaucoup investi dedans. Si Gnome devait en pâtir, ça se ferait petit à petit sur le long terme. On a encore de nos jours de nombreuses applications en tcl/tk ou wxWidget, je ne vois pas pourquoi les applications en GTK+ devraient disparaitre d’ici à un ou deux ans… De plus, le Libre fonctionne sur un système d’émulation, où les développeurs utilisent les technologies qui leur conviennent, pas celles qui conviendraient mieux à la majorité des utilisateurs (venant de Windows qui plus est…) ni celles qui sont les plus jolies.

Selon moi, on n’aura donc au pire qu’un ralentissement progressif du développement de Gnome et GTK+.

Qnome ?

Mark Shuttleworth, le créateur de Ubuntu, a affirmé il y a quelques mois qu’il serait tout à fait possible de créer un environnement de bureau basé sur Qt, mais respectant l’esprit de simplicité pour l’utilisateur qui modèle le développement de Gnome. Il disait que c’était techniquement possible, et que rien ne s’y opposait si ce n’était la licence un peu restrictive de Qt.

À l’époque, je crois que c’était une simple affirmation sans volonté de se lancer dedans, ni d’inciter d’autres personnes à s’y investir, mais à partir de maintenant, avec la nouvelle licence de Qt, cela ne m’étonnerait pas que des développeurs se lancent dans un « Qnome », ou dans un « Knome ».

Il y a deux ou trois jours, j’étais d’ailleurs en train de me renseigner sur le sujet (vraiment par hasard, je n’avais pas prévu l’annonce de Nokia), car il y a plusieurs environnements de bureau basés sur GTK+ (Gnome, LXDE et Xfce, peut-être d’autres que je ne connais pas), mais un seul basé sur Qt (KDE). J’ai bien cherché, mais je n’en ai pas trouvé d’autres. Il y a bien eu un projet nommé KDE-light il y a quelques années, mais il a visiblement été abandonné.

Si un « Qnome » était lancé, je pense que ça entrerait vraiment en concurrence avec Gnome, bien plus que ne pourrait le faire KDE ou l’apparition de logiciels propriétaires en Qt, quelle que soit sa licence. Deux environnements basés sur des technologies différentes, mais partageant les mêmes objectifs ne peuvent que se marcher sur les pieds en terme de « parts de marché ».

Notes

[1] Dans le monde du libre, il n’y a pas vraiment de concurrence, il y a de l’émulation et une offre de choix variée pour remplir tous les besoins :-)

[2] Principalement en terme de multi-plateforme, mais aussi en terme de fonctionnalités. J’ai vu un peu les deux, et je dois avouer que je préfère vraiment Qt (par contre, j’affirme des choses que je n’ai qu’entendu, donc ne lancez pas une flame war ^^).

[3] Encore une fois, ce n’est qu’une impression personnelle, mais je ne suis pas le seul à voir ça de cette façon

I’ve created a GM script to check for leachers in Ikariam, based on a script that i found on this page, but that didn’t suit me. It basically colors the players according to their leecher’s status. If they’ve given far enough they are green, if they have given enough, but just above the limit, they are blue, if they have given just under the limit, they are orange, and if they are leechers they are red (the original script uses green/orange/blue/red instead of green/blue/orange/red).

The script itself can be found there, and here are some explanations about how it operates:

Ideal scenario
If there are 16 players, all having the max number of workers (normally paid workers, not above the limit workers)

  • To have the right to use full power of the quarry/sawmill, each worker should have given at least one 16th of the amount of necessary wood donation.
  • Over paid workers (above the limit, possible with research), should not be taken in account, they are personnal bonus.
  • City lvl shouldn’t be taken in account. A new player on the island, even if its town hall is level 1 or 2, should be considered a leecher if he has max workers producing, with no donation.
  • If a player has multiple cities on an island, we should consider that each of the cities has given the total amount divided by the number of cities, and that the number of workers per city is the sum of all "regular" workers divided by the number of cities. Once again, we should not consider "overpaid" workers

More realistic scenario
But what if not everyone uses max number of workers?

  • If a city has only 50 workers in the sawmill and the maximum is 290, there is no reason this player should pay as much as the other players.
  • The player should donate enough to be able to produce that much, as if he used the sawmill fully. If donation A gives the ability to have 45 workers in the sawmill, and donation B gives the ability to have 60 workers in a normal case, the player should give at least B not to be considered a leecher.

Even more realistic and complex scenario
Usually the case is complex, with some players using full number of workers, some using less.

  • Consider the following case: 16 players, 5 using full production A, 7 using another production level B, 4 using another even lower production level C.
  • We go from bottom to top, considering first what the four lowest players (C) should have donated:
  1. I just consider that there are 16 workers at the C level, and the counting is as usual (each of the 4 players should have donated 1/16th of necessary donation for level C).
  2. Then we consider the 7 middle workers:
  3. There are 12 players left to take in account. I take the amount of donation it takes to get to production level B, I substact the amount of donation that the four lower players have given, and I divide the result by 12. That’s the 100% for those 7 players.
  4. Now for the remaining players:
  5. There are 5 of them and we use the same algorithm as before. Each of them should donate one fifth of the necessary donation to get to full A production minus what the other players have been donating.

The algorithm should be flexible enough so it is adapted to every possible case. Note that I consider what lower players have given if they have given more than needed, and the minimum they should have given, if they’ve given less.

How to take in account the fact that some players are new on the island?
I think we can simply use the levels of the cities’ town halls, by applying a simple ratio between max level on the island and self level. For example, if max player is level 18, and another player is level 9, he should have to give only half of what he would have been supposed to donate (hmmm, is this sentence confusing?).

What if there are not 16 players on the island?
Required donation in this case should simply be multiplied by 16/(number of players), it seems fair to me so nothing more complex is needed.

Other thoughts:

  • This is sad for players who are very efficient on an island where everyone isn’t, they will have to invest way more. We can’t however blame the other players, it’s just bad luck.
  • Same sadness for players who are investing on an island with only 4 or 5 cities.
  • If a player gave a lot, then disapeared (inactive user, or else), there is no way to take this situation in account, and some players might be considered as leechers but aren’t. I don’t know how to deal with this scenario.
  • Players should be asked to allways be above the 110% rate, it means that they are allready investing for the futur. 100 to 110% players are in their right, but they are not investing in advance, they are relying on generous players. 90-100% players are leechers, but they should only be warned that they are leeching and that they may get under the 90% limit upon next upgrade. Under 90% players are real leechers, so they must be asked to invest quickly, then punished if they don’t do so.