La voie du libre

25/07/2008

Je m’amusais à développer une petite librairie permettant de dessiner et manipuler des éléments vectoriels dans une page HTML. L’idée étant de pouvoir, à terme, créer des diagramme interactifs en ligne (UML, base de données, interfaces web…) contrôlés par Javascript (via Mootools. J’ai donc eut deux choix: SVG et Canvas. Vous allez voir à quel point 3 systèmes propriétaires vont me rendre quasiment dingue… Internet Explorer, Adobe et NVIDIA.

Le premier est un langage XML créé par Adobe mais largement implémentés sur différents navigateurs et logiciels de dessins. Seulement Internet Explorer ne le gère pas du tout à moins d’utiliser le plugin Adobe ASV… mais on y reviendra dans quelques paragraphes.

L’autre option, canvas, est une balise prêt à l’emploi et extrêmement rapide… encore une fois Internet Explorer ne le gère pas. Heureusement une solution permet de palier au problème: excanvas pour IE qui est une librairie Javascript permettant de gérer la balise canvas en la transformant en VML (uniquement supporté par IE).

Heureux que je suis, je me dis que canvas est certainement le plus optimal dans mon cas puisque plus largement implémenté dans les navigateurs. Je commence un test simple: créer 2 éléments que l’on peut déplacer et les lier par une courbe de bézier. L’implémentation reste simple à mettre en place, je la teste, elle fonctionne sur IE, Opera, Firefox… Je jubile, je me dis que je pourrais continuer mes travaux chez moi, sur mon PC.

Arrive le soir… je récupère mon test, et je vérifie le fonctionnement. Et là, mon dieu, sitôt que je déplace un élément je vois Firefox ramer. Ce que je n’avais pas remarqué, c’est que mon PC complet commence à ramer. Xorg est à la limite du crash, je vérifie l’état du CPU et je vois un chiffre affligeant: 99% utilisé par Firefox.

Loin de me douter de la raison pour laquelle tout à coup ça ne marche pas, je mets tout sur le dos de Fedora. Étant donné que sur ma Ubuntu au boulot il n’y avait pas de soucis, j’arrive sur le canan IRC #fedora-fr (irc.freenode.net) en grognant que ça marchait très bien sur Ubuntu. Je montre l’exemple en ligne http://blobsallad.se/ en leur disant “non ce n’est pas du flash, c’est canvas “. Choc brutal, la plupart me répond que ça marche très bien chez eux, et 3 autres personnes me disent “ha ouais effectivement moi j’ai le CPU à fond et ça rame”.

Investigation, je me pose la question du matériel… et je mets le doigt sur le soucis. Les 3 personnes qui ont le même souci que moi utilisent le pilote propriétaire nvidia. Les autres utilisant soit le pilote “nv”, soit “nouveau”, soit ils ont une carte autre que NVIDIA. Pour me rendre compte du problème, je passe mon pilote en “nv” et je retourne voir le test… et effectivement ça fonctionne. Plus de 3D, mais ça fonctionne.

Je me dis alors que je vais finalement retourner sur SVG qui, lui, ne fait pas ramer mon PC. Sauf que je sais pertinemment que Internet Explorer ne gérera pas du SVG facilement à moins d’utiliser le plugin Adobe “ASV”. Et oui mais voilà, Adobe a arrêté de supporter leur plugin depuis le 1er janvier 2008. Ce qui est fou c’est que SVG a été créé par Adobe.

La raison ? Adobe voulait contrer Flash avec SVG à l’époque où Macromedia était encore concurrent. Sauf que Adobe a racheté Macromedia… et donc SVG passe à la trappe. Façon de parler… puisque Adobe continuera à créer des logiciels qui généreront du SVG. Seul le plugin est abandonné. Dans leur FAQ, Adobe vous annonce en plus de l’abandon qu’ils préféreraient que vous utilisiez Flex (qui est une technologie SWF donc Flash) au lieu d’utiliser SVG, mais en plus qu’ils ne fourniraient pas les sources du plugin ASV.

Voici donc les 3 comparses qui viennent m’empêcher de faire une librairie aisément: **Internet Explorer, Adobe et NVIDIA**. 3 systèmes **propriétaires**, fermés, mal fait qui ralentissent le développement de technologies évoluées.

A cause des ce genre de systèmes nous somme en train de perdre des années d’évolution. Étant donné l’en fermement des positions de Microsoft, Adobe, Nvidia etc… nous n’avons pas de pilote digne de ce nom sur Linux pour les cartes Nvidia, pas de possibilité de faire des sites évoluée à cause de Internet Explorer, et nous ne savons pas comment implémenter SVG dans IE à cause de Adobe.

Alors que dois-je faire ? suivre la voie du Libre. Si tous le monde faisait des sites évolués avec des technologies libres, standard et puissantes cela forcerait un peu les éditeurs à suivre le mouvement. Adobe fermant les specs de SWF et ne développant plus de plugin SVG, ils s’assurent de contrôler les technologies multimédia internet. Pourquoi ce serait eux qui contrôleraient ces technologies ?

Pour ma part, j’utilise le PNG depuis des lustres, ne me souciant pas de Internet Explorer 5 et 6 qui ne savait pas utiliser le canal alpha (transparence). Je m’en fichais complètement, je ne voyais pas pourquoi j’allais me priver de cela parce que Microsoft n’était pas fichu de le gérer. Opera, Firefox, Konqueror, Safari… le géraient très bien…

Résultat des courses, beaucoup ont fait comme moi… et aujourd’hui Internet Explorer gère le PNG transparent. Ce n’est pas la raison qui a poussé IE à le gérer, mais au moins on avait raison :)

Alors faisons de même pour le SVG. Développeurs et designers, utilisez le SVG qui est géré partout sauf sur Internet Explorer. Utilisez Canvas, utilisez aussi Firefox, Opera, Linux et arrêtez de tenter de faire du Flash pour une simple animation. Vous n’empêchez pas les gens d’utiliser vos développement et vos design, vous les orienter à utiliser des plateformes plus fiables et plus évoluées. Proposer à vos utilisateur d’installer FireFox, OpenOffice et arrêtons de nous formaliser à “oui mais tout le monde utilise Internet Explorer et MS Office”. Ce genre de pensé nous amène à l’enfermement technologiques et l’absence d’évolution. Jamais Microsoft n’aurait décidé de faire un Vista en 3D si Mac et Linux n’avaient pas montré Beryl et Compiz. Jamais il ne s’inquiéterait de leur navigateur mal développé et déciderait de vite développer une version 8 si Firefox n’avait pas 20% de marché (et en constante progression).

Si vous faites cela ,un jour ou l’autre, IE supportera le SVG, soyez en sûr.

Et je souhaite de tout mon coeur que le projet de pilote libre pour nvidia, le projet “nouveau”, arrive à ses fins et que plus jamais les distributions Linux ne propose le module propriétaire nvidia.

Je commence sérieusement à en avoir assez de Flash, de .net, de Windows, de Adobe, etc… honnêtement, j’en ai marre.

Ressources:\\ http://www.adobe.com/svg/eol.html - fin du support Adobe ASV\\ http://www.adobe.com/svg/pdfs/ASV_EOL_FAQ.pdf - la FAQ de la fin du support ASV\\ http://nouveau.freedesktop.org - “Nouveau”, pilote nvidia libre\\ http://www.mozilla.org/projects/svg/ - SVG sur les projets Mozilla, Firefox et autres.

Ça peut vous intéresser aussi


Du troll au débat Windows vs Linux

Gros débat sur le canal IRC #copix, un de nous ...


Optimisons un peu notre Linux en limitant les accès disques

Que vous ayez un SSD ou non, je pense que ...


Reportage Nom de code Linux

C’est un reportage un peu passé de date mais ...

Merci de m'aider à financer mes services

Si vous avez apprécié cet article, je vous serai reconnaissant de m'aider à me payer une petite bière :)

Si vous voulez en savoir plus sur l'utilisation de flattr sur mon blog, lisez cette page: Ayez pitié de moi

Commentaires

Ajouter un commentaire

Ajouter un commentaire

(*) Votre e-mail ne sera ni revendu, ni rendu public, ni utilisé pour vous proposer des mails commerciaux. Il n'est utilisé que pour vous contacter en cas de souci avec le contenu du commentaire, ou pour vous prévenir d'un nouveau commentaire si vous avez coché la case prévue à cet effet.