Aller au contenu | Aller au menu | Aller à la recherche

Technologies Web

Articles, tutos, actualité sur les technologies du web

Fil des billets - Fil des commentaires

mercredi, juin 25 2008

Openweb n'est pas mort

Si vous pensiez qu'Openweb, l'un des tout premiers sites francophones sur les standards, était mort, vous êtes dans le faux.

L'équipe s'est plus ou moins renouvelée depuis quelques mois, et quelques nouveaux articles ont été publié. Mais ce n'est pas fini.

Lire la suite...

mardi, juin 24 2008

Les regexp, c'est bon, mangez-en

Sur son billet "utiliser les regex avec modération", Jérôme explique que substr est plus rapide qu'utiliser preg_match. Mon commentaire sur son billet n'est apparement pas encore passé[1], je me permet donc de répondre ici, car sa comparaison est faussée.

  $extractedString = substr( $exampleString, 1, -1 );

n'est absolument pas équivalent à

   preg_match( '#^\[(\w+)\]$#', $exampleString, $matches );

En effet, dans le premier cas, il n'y a aucune vérification que le premier caractère est bien [ et le dernier ], ni que la chaine à l'intérieur des crochets ne contient que des caractères alphanumérique, contrairement à ce qui se passe dans le deuxième cas avec l'expression régulière.

Aussi, pour avoir une comparaison équitable, il faudrait faire dans le premier cas, au moins ceci :

  if(substr($exampleString, 0, 1) =='[' &&  substr($exampleString, -1) == ']')
      $extractedString = substr( $exampleString, 1, -1 );

En conséquence, les résultats des temps d'exécution sont tout autre : le premier cas est de 2 à 5 fois plus long que l'usage de l'expression régulière. Et encore, là, je n'ai pas ajouté de vérification sur le contenu de $extractedString, pour s'assurer qu'il s'agit bien uniquement que de caractères alphanumériques (je vous laisse imaginer le code qu'il faudrait développer sans l'usage d'une expression régulière).

À la limite, l'expression régulière équivalente au premier cas, serait

 preg_match( '#^.(.+).$#', $exampleString, $matches );

Et là, effectivement, preg_match est plus lent, mais c'est ici une mauvaise utilisation de preg_match. Pourquoi utiliser une expression régulière si on ne cherche pas à vérifier la syntaxe du contenu ?

Conclusion : n'hésitez pas à utiliser les expressions régulières [2] quand vous voulez extraire des données d'une chaîne et en même temps vérifier l'intégrité du contenu ;-).

Notes

[1] c'est bon, problème réglé, mais je laisse ce billet en ligne quand même :-)

[2] uniquement avec les fonctions preg_*, et non pas ereg_*, qui sont obsolètes et plus lentes

mercredi, juin 11 2008

Affichage de Texte dans Firefox 3

Une des grandes améliorations dans Firefox 3, mais qui ne se voit pas forcément à première vue, c'est l'affichage du texte, ou plus exactement, l'utilisation correcte des fontes : crénage, ligatures, "font hinting", anti-alias, sélection des fontes. Autant de points qui ont été amélioré, voire introduit, ce qui permet un affichage typographique de qualité. D'ailleurs sur certains de ces points, Firefox 3 est apparemment meilleur que les autres navigateurs. Mais ce n'est pas fini, car dans les prochaines versions de Firefox, il y aura d'autres améliorations comme les fontes téléchargeables (si certains point de la spécification au W3c sont éclaircis), "font family merging" (?), "font-stretch", et les ombres sur les textes (text-shadow) dont le développement est très actif.

Pour en savoir plus, lisez le billet de Dria : Firefox 3: Font and text. Après, on comprend mieux tout ces termes barbares :-).

vendredi, juin 6 2008

in_array n'est pas lent

Je réagis à certains billets comme celui de nexen qui annoncent que in_array est lent, comme si c'était un scoop.

Franchement, tout développeur ayant un minimum d'experience en programmation (niveau IUT première année, premiers cours en algorithmie), sait que faire une recherche séquencielle dans un ensemble de valeur est plus lent que faire une recherche en passant par un index. Ce n'est pas un scoop. C'est mathématique.

Maintenant on n'utilise pas in_array pour faire la même chose qu'avec des isset. C'est comme si on s'aperçevait sur un circuit que la 2CV est plus lente qu'une formule 1. Bah oui mais la 2CV n'est pas conçu pour aller sur un circuit.

Bref, l'auteur du billet original n'a pas choisi les bonnes fonctions pour coder son truc, et il s'étonne ensuite que c'est lent. Normal quoi.

Conclusion : in_array n'est pas lent. Il fait ce qu'il doit faire. Il n'est lent que si on l'utilise dans des situations inadaptées. point.

mercredi, juin 4 2008

Actu Mozilla

Bon, je retourne à la doc sur Mercurial qu'il semble trop bon ce VCS :-)

mardi, mai 20 2008

Firefox 3.0RC1, Gecko 1.9RC1

Allez ! Hop Hop Hop ! Testeurs de tout poils, courrez télécharger Firefox 3.0RC1 ! Dernière ligne droite pour cette version dont le développement dure depuis plus de deux ans. Pleins de nouveautés, tant pour les utilisateurs, que pour les développeurs.

Si vos extensions favorites ne sont pas à jour, harcelez leurs auteurs !

Firefox 3.0 est une belle avancée. Avec quelques bémols :

  • gecko 1.9 ne passe pas le test acid3 (mais l'utilisateur "normal" s'en fout comme de sa première chaussette)
  • il y a un bug super génant (au moins sous linux) : le scroll de certains sites est affreusement lent, et il semble que ce soit du à certaines utilisations des bordures en CSS (je n'ai plus le numéro du bug en tête, surtout qu'en fait il y en a plusieurs). Et ce bug m'embête profondement, puisqu'il apparait en particulier quand je vais sur linuxfr.org. Je sens que les trolleurs vont s'en donner à coeur joie sur ce site...

Bon mais cela reste une très très bonne version.

Et ce n'est pas tout : Firefox 3.1 est prévu pour la fin de l'année (oui, si vite), avec, si tout va bien plein de petits trucs sympas (mais à prendre avec des pincettes, rien n'est figé) :

  • XmlHttpRequest cross site
  • binding JSON-DOM
  • encore des améliorations sur les performances
  • encore des améliorations sur la barre url
  • la balise <video>
  • et des améliorations spécifiques pour la version mobile de Firefox !

Et mon petit doigt me dit qu'il y aurait aussi des améliorations dans CSS. Par contre on ne sait pas encore lesquelles seront incluses dans Firefox 3.1. Ce qui est sûr, c'est qu'ils y travaillent en ce moment et il y a des patchs en cours de réalisation, voir presque prêt, dont par exemple :
** les bordures en images
** le text-shadow
** les pseudo-classes :nth-*(), :first-of-type, :only-of-type, :last-of-type...
** @font-face
** media queries CSS3
** ...

Que du bon !

mardi, avril 22 2008

Petit sondage php/mysql/posgresql

Ce qu'il y a bien dans Mysql 5, c'est qu'on peut enfin commencer à utiliser triggers, procédures stockées et vues. Ça permet d'alléger le code PHP des applis web, et de garder une meilleure cohérence dans les données (et de meilleurs perfs dans le traitement des données je pense).

Bref, j'aimerai bien commencer à pouvoir faire des vrais schemas de bases de données dans les applis web (et dans certaines briques de jelix), quand je n'ai que mysql sous la main.

Seulement voilà, je ne suis pas sûr que Mysql 5 soit dispo chez tout les hébergeurs. Aussi, si vous pouviez me dire les versions de mysql, php, et posgresql que propose votre hébergeur (en donnant son nom), ce serait sympa :-)

Attention, n'allait pas seulement voir dans le phpmyadmin de votre hébergement. En effet, par exemple, je sais qu'OVH propose depuis peu du mysql 5, mais seulement pour les nouveaux inscrits, les bases sur mysql 4 des "anciens" n'étant pas migrées automatiquement.

PS: si vous avez votre propre serveur dédié, ça m'interresse aussi, indiquez alors "hébergement perso" comme nom d'hebergeur :-)

mercredi, avril 9 2008

Variables en CSS

Vous en avez rêvé ? Daniel et David vont l'ont fait : Les variables CSS. Pour l'instant, ce n'est que le brouillon d'un brouillon d'une future recommandation, mais les commentaires sont les bienvenu. Vous pouvez les faire sur le blog de Daniel ou ici, je transmettrai ;-).

En gros, comment ça fonctionnera (en faisant l'hypothèse que la spec ne changera pas trop :-) ) :

@variables {
 CorporateLogoBGColor: #fe8d12;
}

div.logoContainer {
 background-color: var(CorporateLogoBGColor);
}

Les variables sont définies dans un bloc d'une règle @variables. Ici la variable CorporateLogoBGColor est déclarée avec la valeur #fe8d12. Ensuite, pour l'utiliser dans les propriétés de style, on utilise l'instruction var() avec le nom de cette variable.

Alors attention, il s'agit bien d'une variable, et non pas d'une constante, puisque, cerise sur le gâteau, on peut modifier sa valeur via le DOM style. Vouloir modifier la variable CorporateLogoBGColor reviendra à faire ça :

 document.styleSheets[0].cssRules[0].variables.setVariable('CorporateLogoBGColor', '#000');

PS: je vais proposer à Daniel une manière plus simple de modifier une variable, par exemple :

 document.styleSheets[0].setVariable('CorporateLogoBGColor', '#000');

mardi, avril 8 2008

Du ruby dans vos pages web

Via John Resig, (Monsieur "jQuery"), j'ai découvert HotRuby qui est un projet permettant d'exécuter du ruby dans une page web.

Voici comment ça fonctionne

  • inclure les fichiers js de hotruby
  • mettre son code ruby dans une balise <script type="text/ruby"></script>
  • Ce code est envoyé sur un serveur via xmlHttpRequest, et en réponse, le serveur renvoi une structure en javascript qui correspond à du bytecode Ruby
  • Ce bytecode est alors executé par une VM programmée en javascript (la VM de HotRuby donc)
  • Pour les détails, voir le billet de John

Et voila :-) Astucieux non ?

Alors pour l'anecdote, il faut savoir que cette VM en javascript exécute le bytecode de Ruby 5 fois plus vite dans Firefox 3.0 que la VM native de Ruby ! Une VM en javascript qui exécute plus vite qu'une VM codée en C, c'est impressionnant !

Mozilla 2 (Firefox 4), comportera une machine virtuelle pour Javascript 2 (projet Tamarin, à partir de la VM libérée par Adobe). Ainsi, le javascript des pages web sera converti en bytecode pour Tamarin, avant d'être exécute par Tamarin. Supposons maintenant que par l'intermédiaire d'une extension, on puisse installer un compilateur d'un langage X qui génère du bytecode pour Tamarin, et donc qu'on puisse ensuite faire <script type="text/ruby"></script> ou <script type="text/python"></script>. On n'aurait plus besoin de passer par cette étape de xmlHttpRequest, donc par un compilateur exterieur :-)

Bon, je rêve, pas dis que ce sera faisable dans Firefox 4, mais à mon avis, il manquera peu pour que ça puisse exister :-) Quoique, c'est peut-être le but de IronMonkey... Je n'ai pas vraiment compris l'objectif de IronMonkey mais je crois qu'il s'agit de porter IronRuby et IronPython pour qu'ils génèrent du bytecode pour tamarin...

jeudi, avril 3 2008

Encodeurs XHTML et XML dans Gecko

Ça fait longtemps que je n'ai pas parlé des avancées sur Etna. Donc voici quelques nouvelles.

Le nouveau validateur RelaxNG en C++ est presque terminé. Je suis en train d'implémenter nos extensions relaxng, mais d'une manière qui va être plutôt sympa : sous forme de "plugin" pour le validateur. En effet, je suis en train de rendre le validateur extensible. Ainsi un développeur pourra apporter le support de ses propres extensions RelaxNG, via un simple composant XPCOM.

Bon par contre, entre temps, une envie m'a pris de modifier l'encodeur[1] XHTML/XML de Gecko. En effet, celui-ci ne permet pas le "pretty printing", comprendre, il ne permet pas de générer le XML de manière lisible, comme le fait l'encodeur HTML. Et c'est bien sûr une chose dont j'ai besoin dans Etna.

Bon, ça ne semble pas si intéressant que ça me direz-vous. Mais en fait si. Car cette modification va avoir quelques répercussions...

Il faut savoir que l'encodeur XML est aussi utilisé pour encoder les documents XHTML qui sont servis avec le type mime application/xml+xhtml. Par contre, pour les documents XHTML servi en text/html, c'est l'encodeur HTML qui est utilisé. En sachant ça, vous comprenez qu'en ce moment, dans Gecko, l'éditeur HTML a un support plutôt bancale de XHTML. En sortie, soit on a du HTML bien présenté, mais forcément, ce n'est plus du XHTML (voir du XHTML invalide), soit on a droit à du XHTML mais présenté brut de fonderie donc on peut avoir des lignes de textes qui font des centaines de caractères si il n'y a pas de saut de ligne dans les noeuds textes. Dans NVu, Daniel avait patché l'encodeur HTML pour que la sortie XHTML soit un minimum potable (patch non porté dans le gecko officiel), mais il était insuffisant (faute de temps) : aucun support des namespaces.

En clair, avec les modifications que je vais faire dans les encodeurs XML et HTML, je vais à la fois permettre d'avoir du pretty printing sur les fichiers XML en général, mais aussi corriger les problèmes de "sérialisation" des documents XHTML. Cela va avoir donc pour effet d'améliorer le support XHTML dans l'éditeur de Gecko.

Qui va en bénéficier me direz vous ? Tout ces petits programmes comme wymeditor, tinyMCE et consorts, qui permettent l'édition WYSIWYG du HTML dans les formulaires, et qui sont actuellement obligés de faire des hacks pourris mais hélas nécessaires quand ils veulent du XHTML, pour transformer les chaînes HTML que leur donne Gecko en XHTML valide.

Bon par contre, je n'ai pas encore terminé, et il ne faut pas s'attendre à ce que ce soit dans Firefox 3 (trop tard). Le ticket correspondant dans bugzilla : 422403.

Notes

[1] l'encodeur, ou serializer, est le bout de programme qui sert à convertir un arbre DOM, en chaîne, permettant ainsi l'enregistrement d'un DOM dans un fichier par exemple

jeudi, mars 27 2008

Acid3: le gagnant est ...

Mise à jour 15h12 : Arg, Ian indique qu'un bug a été découvert dans Acid3, et du coup Opera est redescendu à 99/100 :-) La course continue !

Mise à jour 15h00 : Webkit a "un peu" triché au niveau de son score 100/100. L'une des étapes de Acid3 test les animations SVG. Or pour ce test, Webkit a juste implémenté une interface pour que le test passe. Et donc en fait, les animations dans SVG ne sont pas implémentées ! Plus d'explications sur ce blog, où son auteur a fait passé la suite de test SVG au moteur webkit... Avec peu de succés... En fait Webkit n'implémente pas beaucoup plus SVG que Firefox 3... Alors qu'Opera a une très bonne implémentation de SVG.


...Webkit ! Ou Opera ! Incroyable ! Le même jour ! Je ne pensais pas la course si serrée.--

Bon, mais, pas tout à fait en fait. Les bureaux d'Opera sont situés en Europe. Ceux de Apple/webkit, aux États Unis si je ne me trompe pas. Si on pose l'hypothèse que les heures de publications des billets correspondent aux fuseaux horaires de ces deux endroits, alors c'est Opéra qui a gagné !

Mais, mais... C'est Webkit qui fournit le premier une version dispo au grand public..

Bon, allez, pas de jaloux, ils sont tout les deux sur la première marche :-)

Conçernant Firefox 3 : il ne passera jamais le test acid3. Le compteur restera bloqué aux alentours de 71/100. En effet, la sortie de la version stable de Firefox 3 approchant à grand pas, ce n'est plus le moment (depuis un bout de temps d'ailleurs), d'aller modifier en profondeur Gecko. Les développeurs se concentrent en ce moment sur la correction des bugs critiques. En effet, ce qu'il manque pour passer le test acid3 complet, ce sont des choses comme l'implémentation des animations SVG, l'implémentation des fontes téléchargeables etc. Et ce sont des gros morceaux à coder, pas le temps pour le moment donc. Il va donc falloir attendre au moins la version suivante de Firefox (3.5, ou 4, on ne sait pas encore).

Bon, heureusement pour Mozilla, il y a Internet Explorer qui occupe toujours la place du dernier :-)

Félicitations aux développeurs de Webkit et Opera !

vendredi, mars 14 2008

Tests unitaires dans Mozilla

Depuis le démarrage du développement de Gecko 1.9, les développeurs ont mis en place plusieurs frameworks de tests unitaires. Ceux-ci ont contribué largement à faire de Firefox 3 un navigateur solide, ou en tout cas un navigateur ayant le moins de régressions possible. Il y a un gros 4 types de tests :

  • Mochitest, qui est un framework pour des tests nécessitant d'être fait dans une page HTML (ou XUL) chargée par le navigateur.
  • reftest. Ce sont des tests sur le moteur de rendu. Le principe est le suivant : pour chaque test, on fourni deux pages HTML écrites différemment. Cependant elles sont censées avoir exactement le même aspect à l'affichage, l'une des pages servant de référence (sur le même principe que pour le test acid2 : une page pour tester, et une autre qui sert de référence[1]). Aussi ce système compare l'"image" des deux pages, et si il y a le moindre pixel différent, le test n'est pas valide.
  • xpcshell tests. Ce type de test est utilisé pour faire des tests de composants XPCOM principalement ou sur le langage javascript, et donc ne nécessitant pas d'être dans le contexte d'une page html chargée.
  • stand-alone, pour faire des tests qui ne sont pas possible de faire avec les autres systèmes, donc en général quand il faut tester des classes C++, qu'il faille créer un exécutable.
  • crashtests : ce sont des tests qui sont dédiés aux bugs qui causaient des crashs du navigateur. Ils vérifient donc que ces crashs ne se reproduisent plus :-)

Actuellement, pour Firefox 3, il y a plus de 46200 mochitests et 1840 reftests. Pour les autres types, il est difficile de les compter, mais il y en a aussi plusieurs centaines (voire milliers..).

Même si ça peut paraitre beaucoup, ces tests sont très loin de couvrir l'ensemble du code, et surtout de l'ensemble des centaines de composants XPCOM. La principale raison est que ça prendrait des mois à développer tout les tests unitaires, vu la complexité d'un moteur de rendu comme Gecko. Il aurait fallu commencer à construire ces tests dés le début du projet en 1998[2], mais à cette époque, le développement piloté par les tests unitaires n'était pas une pratique connu dans le monde de l'informatique.

Et puis Firefox ne fonctionne pas si mal :-) Il n'est donc pas forcément urgent de développer des tests sur des parties dont on sait qu'elles fonctionnent bien depuis des lustres. Aussi les tests ajoutés actuellement concernent-ils principalement les corrections de bugs, les nouveautés et les améliorations.

Notes

[1] Bien sûr, acid2 est inclus dans les reftests ;-)

[2] Depuis le début en fait, il y a eu des tests développés, mais ils étaient peu nombreux jusqu'au développement de Gecko 1.9, et ils étaient en majorité de type stand-alone

vendredi, mars 7 2008

Glazou, co-chairman du CSS working group

Daniel Glazman, aka glazou, vient d'être nommé co-chairman du CSS Working Group au W3C. Félicitation à toi Daniel !

J'ai comme l'impression que ça va bouger un peu plus du coté de CSS3 ;-)

mardi, mars 4 2008

Mode standard par défaut dans IE8

Bonne nouvelle ! Le manager du projet Internet Explorer a annoncé dans le blog IE que IE8 fonctionnera avec le mode standards par défaut. Cela veut dire, plus de balise meta spécifique ou autre artifice pour IE8. Il faudra par contre mettre une meta ou un en-tête http spécifique pour dire que la page a été faite pour le mode "semi-standard" de IE7.

Pendant ce temps là, le test acid3 est annoncé comme stable.

lundi, février 25 2008

Firefox 3 : le cheval de Troie

Allons bon, Adobe sort le première version stable de AIR. Certains s'en félicitent, voir même ont fini par oublier un concurrent : XulRunner. Certains le croient mort. Moi-même il y a quelques mois, j'ai douté.

Mais d'ici quelques mois, il sera installé sur des centaines de milliers, non, que dis-je, des millions de machines (20% de part de marché des navigateurs, ça représente bien des millions d'internautes n'est-ce pas ?). Sans même que les utilisateurs "lambda" le sachent. Car il sera installé sous un autre nom : Firefox 3.

En effet, Firefox 3 est basé sur XulRunner. Et Firefox 3 pourra lancer des applications XulRunner. Ainsi, pour lancer une application avec XulRunner, on fait ça (dans une console, dans un raccourci sur le bureau ...) :

  xulrunner.exe application.ini

Maintenant avec Firefox 3, on peut faire ça :

  firefox.exe -app application.ini

À cela il faut rajouter Prism, qui est une application, basée elle aussi sur XulRunner, permettant de lancer une application web de la même manière qu'une application desktop.

Est ce que Adobe AIR aura le même taux de pénétration ? Rendez-vous à la fin de l'année.

Note : application.ini est un fichier qui contient des infos sur l'application à lancer.

PS: à moins qu'ils décident, chez Mozilla, de supprimer cette option -app pour diverses raisons... Mais dans ce cas, on pourra toujours fournir les applications sous forme d'extensions ;-)

samedi, février 23 2008

La course acid3

En ce moment, entre les moteurs de rendu web, c'est la course à celui qui passera les tests acid3 au complet le plus tôt possible.

Je viens de voir par exemple que la nightly de Webkit a un score de 86/100 ! Alors qu'il y a quelques jours il n'en était qu'à 79/100 apparement. La nightly de Firefox (future beta4) en est aujourd'hui à 67/100. La beta 3 ayant un score de 59/100.

Quant à IE, son score actuel est... Non rien...

C'etait Laurent, du stand Mozilla, en direct du Fosdem. À vous les studios

mardi, février 19 2008

Support des selecteurs CSS3 amélioré dans Firefox 3.0

David Baron vient d'intégrer dans les sources de Firefox 3 des corrections sur les sélecteurs de pseudo classes (genre :empty, :only-child, :last-child etc..). Avant, par exemple, il y avait un bug avec :empty : la sélection se faisait bien au chargement du document, mais si un élément non vide devenait vide ou l'inverse, la sélection ne se faisait plus. Et je vous parle de :empty parce que ce bug m'empêchait d'utiliser ce sélecteur dans Etna, mon éditeur XML wysiwyg, et m'obligeait du coup à des petites acrobaties dans le code qui me déplaisaient.

Ainsi, grâce à cette correction, le support des sélecteurs CSS3 dans Firefox 3.0b4 sera largement amélioré, la suite des tests de css3.info en atteste. Voici un comparatif :

Résultats des tests de la prise en charge de 43 sélecteurs CSS3
Firefox 2Firefox 3.0b3Firefox3.0b4
Sélecteurs OK263236
Sélecteurs buggés1040
Sélecteurs non supportés777
Total des tests ok357/578369/578374/579

En fait, il ne reste plus que 7 sélecteurs à implémenter correctement : :nth-child(), :nth-last-child(), :first-of-type, :last-of-type, :only-of-type, :nth-of-type(), :nth-last-of-type(). Peut-être y'aura-t-il encore des améliorations sur ceux-là d'ici Firefox 3 final mais ce n'est pas encore sûr.

À noter que webkit (safari et Konqueror) ainsi qu'opera je crois, passent la suite de test complètement avec succés.

PS : une autre conséquence de cette correction est que trois tests supplémentaires passent avec succés [au test acid3|http://acid3.acidtests.org/], avec un score de 64/100.

jeudi, février 14 2008

Adobe AIR vs Xulrunner : Xulrunner gagne chez Flickr

Une nouvelle version de l'outils Flickr Uploadr vient de sortir, et elle est basée sur Xulrunner. Dans une interview, le responsable du projet Richard Crowley explique ce choix technique. Ils ont fait une étude pour savoir si ils allaient prendre Adobe Air ou Xulrunner pour cette nouvelle version. Ils ont donc finalement choisi XulRunner parce que :

  • XulRunner permet de faire du multi-thread, et pas Air.
  • On peut lier des bibliothèques externes avec une application XulRunner, et pas avec Air.
  • La haute extensibilité de XulRunner, ce que ne permet pas Air.

Bien sûr, cela ne veut pas dire que Air soit entièrement mauvais[1], mais XulRunner correspond mieux aux besoins des développeurs de flickr.

(via le blog Mozilla in Asia)

PS: et pendant ce temps-là, Zimbra choisi Prism pour faire un client desktop... Gecko powwaaa !

Notes

[1] uuuummmmphhh, vous n'imaginez pas les efforts que je fais pour me retenir de troller.. hu hu :-)

mercredi, février 13 2008

Prédictions

Je m'en fiche de plus en plus de IE. Vous savez pourquoi ? Parce que de moins en moins de monde va utiliser IE. Je predis que d'ici 2-3 ans, IE passera sous la barre des 50%. Peut-être pensez vous que je sois optimiste, mais plusieurs choses me le font penser :

  1. Techniquement, IE7 est à la ramasse même si il y a eu quelques progrés. IE8 est loin d'être encore sorti. Les développeurs en ont marre de cette bouse et beaucoup font (inconsciemment ou pas) de la pub pour les autres navigateurs. Surtout que les dernières ou prochaines versions de Firefox, Safari et Opera ont des possibilités techniques vraiment attrayantes (et qui apportent un avantage concurrentiel, voir plus loin).
  2. La montée en puissance des navigateurs alternatifs sur le desktop. Notamment Firefox avec ses 28% de part de marché en europe. Presque 1/3, c'est pas rien. Et ce n'est pas terminé.
  3. La croissance fulgurante des appareils mobiles embarquant un navigateur (quand je dis appareil mobile, j'inclus téléphone, PDA etc..). L'extrême majorité de ces appareils n'embarquent pas IE, mais Opera, Safari (pour l'iphone) ou des navigateurs à base de webkit ou gecko. La raison : peu d'entre eux sont sous windows mobile, mais sur des systèmes alternatifs en particulier Linux. Linux qui ne cesse de croitre ses parts de marché sur le mobile...
  4. À cela faut il ajouter dans les deux ans qui vont suivre la sortie du système d'exploitation Android de Google, spécifique pour les appareils mobiles, et qui embarquera non pas IE, mais webkit. Vu la puissance de Google, on peut parier sur une utilisation massive de ce système dans les prochaines générations d'appareils.
  5. Et d'ici deux ans aussi, la sortie de Mozilla Mobile, qui sera disponible sur plusieurs plate-formes donc a de forte chance d'être utilisé massivement lui aussi. (Oui, la guerre qui vient de commencer sournoisement, ce n'est pas IE contre les autres, mais Gecko vs Webkit).
  6. Autre argument à prendre en considération : Gecko, Webkit et opera implémentent ou vont implémenter des possibilités de HTML5, en particulier tout ce qui concerne l'exécution d'appli web en mode déconnecté (offline). Ce qui est très utile et important dans le monde du mobile, où on peut souvent être déconnecté d'un réseau. Ces technologies sont je pense des arguments qui peuvent faire poids dans le choix d'un navigateur, pour un constructeur de mobile. Étant donné qu'on ne sait pas encore si IE8 supportera ce genre de fonctionnalités...

Mes deux sous...

mardi, février 12 2008

Silverlight demo revisited

Vous souvenez-vous de la demo de vladimir, qui avait réécrit en SVG une demo de manipulation d'image fait avec Silverlight ?

Je la trouvais particulièrement lente (sous linux en tout cas). Et en fait, en regardant le code source, j'ai vu qu'il y avait quelques optimisations à faire en javascript. Voici donc une nouvelle version qui s'avère plus réactive dans Firefox 2 et 3, même si ce n'est pas encore d'une fluidité parfaite (il y a des pertes de perfs au niveau du rendu même, donc je peux rien y faire).

- page 3 de 15 -