Firefox 4 : une génération d'avance

Christophe Laporte |
Pour Chris Blizzard, cela ne fait aucun doute, Firefox 4 aura une génération d'avance sur la concurrence en matière de performance JavaScript. Jusqu'à présent, c'était le point faible du navigateur de la fondation Mozilla face à Safari, Chrome et Opera.

Firefox 4 embarquera une nouvelle extension à son moteur JavaScript baptisée JagerMonkey. Celle-ci se chargera de transformer du code JavaScript en code machine, lorsque le tracing ne pourra être utilisé (pour en savoir plus sur le fonctionnement d'un moteur JavaScript, lire : Une pincée de WebKit dans le prochain moteur JavaScript de Mozilla). Le responsable de la fondation Mozilla estime d'autre part que le moteur de tracing de Firefox 4 est le plus rapide du moment.

Toutes ces améliorations font que selon lui, lorsqu'il sortira, Firefox 4 sera nettement plus performant que ses concurrents. Jusqu'à présent, la fondation Mozilla espérait rattraper la concurrence avec Firefox 4 en ce qui concerne JavaScript. Elle est maintenant suffisamment confiante dans ses technologies pour affirmer que son navigateur sera bien plus rapide que le moteur V8 de Google et SunSpider d'Apple.

La sortie de Firefox 4 est programmée pour cet automne. Il est à noter que les améliorations présentées par Chris Blizzard, notamment JagerMonkey, n'ont pas encore été intégrées aux bêta.
avatar sebastiano | 

Enfin. J'ai complètement délaissé FF depuis quelques versions, à cause de ses bugs et sa lourdeur ... si tout est ok dans la V4, re-bienvenue !

avatar laurange | 

quelqu'un devrait leur dire que leur gueguerre de celui qui la plus longue ne sert plus à rien.
qui est gêné par les lenteurs dans du javascript maintenant ?
la seule chose qui fait ralentir le web ce sont les grosses pubs en flash qui inondent certains sites.

avatar sebastiano | 

@laurange : Ils n'ont pas forcément tort, le javascript via l'Ajax et jQuery/MooTools est en train de devenir indispensable à une ergonomie sympathique sur beaucoup de nouveaux sites. Les scripts sont de plus en plus élaborés et nombreux. Même si je suis d'accord concernant le flash, mais ça n'est pas la seule chose qui fasse ralentir un site.

avatar Ziflame | 

Je vois que Mozilla utilise l'ancienne stratégie marketing de Microsoft : promettre ce qu'on sait pertinemment bien ne pas être capable de fournir.

C'est dire combien Mozilla est dépassé par Safari, Chrome et même Opera et IE.

avatar funatik2k | 

@ laurange

Bien sûr que ça sert. Plus ils optimiseront leurs moteurs, plus les sites lourds s'exécuteront vite, notamment sur les machines qui datent un peu…

avatar melaure | 

@Ziflamme, peut-être sur Mac, soit quelques pour-cents du parc de machines ... Mais sous Windows Safari est une horreur et Firefox est vraiment excellent. Je ne trouve pas IE plus rapide par contre ...

avatar dashan | 

Quel mal y a t'il a avoir une guerre des navigateurs si au final l'utilisateur final y trouve son compte ?

avatar Terenn | 

Je suis plutôt d'accord avec laurange.

Les performances JS ne sont plus le critère déterminant dans le choix d'un navigateur. Il ne faut pas laisser tomber, c'est bien sûr un élément clé, mais la différenciation est ailleurs.

avatar azgard | 

Ziflame +1

Je ne les crois pas.

avatar sebastiano | 

Firefox excellent sous Windows ? Pour avoir utilisé les dernières versions sous Mac ET Windows (XP + Seven), sincèrement ... faut se satisfaire de peu ou aller sur des sites très basiques. Chrome est bien meilleur, Safari à peine en retrait de FF.

avatar Ziflame | 

@Melaure : sous Windows et Linux, Chrome fait le boulot de Safari (avec qui il partage Webkit). Quant à IE 9, les betas les plus récentes semblent prouver que le retard a été rattrapé (rendu HTML, CSS, respect des standards, HTML 5, moteur Javascript JiT).

Mozilla souffre de plus en plus de son côté usine à gaz, qu'il trimballe depuis le début quand les concepteurs de Firefox ont décidé que toute l'interface devait être en Javascript. Et ils ont pris cette décision du temps où le Javascript était vraiment très lent. Une interface qui n'est pas native pose toujours des problèmes à un moment ou l'autre. Les exemples abondent.

avatar Sephi-Chan | 

De nos jours, il n'est jamais inutile d'améliorer les performances de Javascript. D'une parce que ça améliore le Web d'aujourd'hui, mais parce que ça contribuera au Web de demain.

Par exemple, IE9 supportera le SVG, on peut donc penser que d'ici quelques années, cette technologie sera beaucoup plus utilisée sur le Web : on manipulera donc beaucoup plus de documents SVG avec Javascript.
Le problème, c'est qu'un document SVG devient vite volumineux, et que les modifications du DOM sont coûteuses en ressources. Avec des moteurs Javascript plus efficaces, les machines (notamment les mobiles) auront moins tendance à ralentir lors de grosses manipulations.

Je donne cet exemple pour SVG, mais c'est/sera vrai aussi pour les canvas 2D et 3D (WebGL).

Et au dela de la vitesse d'exécution, compléter l'implémentation ne serait pas un luxe : il y a encore des manques.

Par exemple, Javascript 1.5 a introduit le flag multiline à l'objet Regexp. Firefox sait le gérer, mais pas Chrome, ni IE. Ainsi, la regexp //*.*?*//m, supposée match les commentaires de la forme /* Mon commentaire */ échoue lamentablement si le commentaire occupe plusieurs lignes (ce qui arrive souvent quand on doit parse des fichiers CSS…), du moins sur certains navigateurs. Quand on a un tel besoin, il faut éliminer les commentaires avec le langage de script côté serveur (dans mon cas Ruby), pour lequel la regexp fonctionne.

Sephi-Chan

avatar mfay | 

je prefère Firefox à tous les autres (chrome arrive second). surtout pour certaines extensions et parce ça reste une référence dans le rendu (j'ai eu plus de pb avec le rendu de safari). IE toujours dernier :)

avatar TixXxu | 

Firefox reste pour moi aussi LA référence. Je ne le trouve pas spécialement "lourd" comme beaucoup le dise. Chrome est peut être un poil plus rapide, mais en tout cas il est suffisamment rapide pour moi.
Et puis une fois qu'on à goutter aux extensions (très nombreuses et souvent de qualité) on ne peux tout simplement pas revenir en arrière.

avatar daito | 

[quote]que le moteur V8 de Google et SunSpider d'Apple. [/quote]

Le moteur Javascript de Safari est appelé Nitro (ou SquirrelFish Extreme). Sunspider est un outil pour mesurer les perf Javascript.

avatar norman | 

Oups, c'est malencontreux, FF vient encore de planter... Relancer ---- Laisser tomber ;-)

avatar Jehutty | 

Alors ok firefox est une usine à gaz mais il reste pour moi la référence. Quand les autres navigateurs auront une gestion des onglets aussi poussées que Firefox, on verra mais c'est pas demain la veille on dirait...

Donc les seules choses que firefox n'a pas sont:
- un top site bien cool et encore il y a des extensions
- un peu moins d'espace dans la bar de menu, pour gaggner des pixels, mieux sur laptop
- et aussi ne pas recharger la page quand on sort un onglet de sa fenetre..

Vivement cette version 4, une date de prévue d'ailleurs?

avatar Macgellan | 

@ sebastiano
Tout à fait d'accord. Une lourdeur qui me faisait rappeler dans le temps Netscape!

avatar Oliange | 

J'ai testé la FF 4 beta et c'est moins rapide que Chrome 6 à l'usage.
A voir quand la finale sortira.

Et pour le flash, autant ça ralenti mon MBP autant ça ne ralenti pas mon portable de boulot sous Win... Donc bon faudrait arrêter de critiquer flash parce que c'est à la mode.

avatar pol2095 | 

Les moteurs javascript sont lents, impossible de faire de gros calculs et la syntaxe est obsolète, dire que c'est la base du html5.
Chez moi c'est le javascript qui fait ramer le navigateur le plus souvent, c'est d'améliorer la rapidité mais il serait temps de sortir un js2 avec des classes.

avatar Elcos | 

@Jehutty, pour pouvoir dire que FF est une référence il faudrait déja que tu teste les autres.

Opera explose FF de long en large et en travers question gestion d'onglet....
de même pour la gestion des favoris, etc....

avatar pol2095 | 

Comment se fait-il que sur mon iphone Safari me vide la batterie dès que je le lance ?

avatar Jehutty | 

@Elcos c'est vrai que je n'ai pas pu tester Opera (a part sur iphone), à chaque version que j'installe, celui-ci plante...

Je vais tester pour voir la gestion des onglets qui a l'air interressante!
Mais je ne pense pas utiliser opera comme navigateur principal, n'étant pas assez populaire.
Pour moi la guerre se joue entre Chrome, firefox, IE et safari, bien que safari est un peu a l'ouest aussi!

avatar metaplasme | 

Je n'ai jamais été un fan de Firefox sur mac mais la version 4 est vraiment rapide, surtout pour ce qui est du scrolling (qui saccade de manière flagrante avec safari 5.01...)

Pour l'instant je reste sur safari surtout pour l'extension "clicktoplugin" qui remplace toutes les vidéos flash par du html5, mais si une extension équivalente arrive sur firefox je changerai de browser.

avatar Elcos | 

@ Jehutty "Mais je ne pense pas utiliser opera comme navigateur principal, n'étant pas assez populaire."

et beh, tu es si dépendant des autres pour te forger ton propre avis?

perso qu'il soit populaire ou non peit importe, Opera écrase FF dans de nombreux domaines.

la force de FF ce sont les extensions, mais vu les lacunes d'origine de FF qu'il faut corriger avant que se dernier ne devienne vraiment agréable.....

avatar Armas | 

Faut continuer de soutenir Fire Fox, meme si la qualité baisse de temps à autre, l'idée est bonne et les valeurs que la fondation Mozilla véhicule sont censées, faudra pas pleurer si on se retrouve dans une deuxième aire IE ou une aire Chrome. Chrome est vraiment cool, mais je reste sceptique par rapport à Google.

avatar romainbessuges | 

Oh que je te rejoins pol2095... Comment peux-t-on à l'heure actuelle baser tout un écosystème (le fameux HTML5) sur un langage aussi miteux !?! Quand on voit le succès du C#, de l'AS3, du Java, de PHP5, on se demande ce qui peut bien se passer dans la tête des instances du W3C. D'autant plus qu'au delà des inhérents soucis de compilation qu'un langage aussi permissif engendre, on ne se pose à aucun moment les contraintes en terme de maintenabilité que cette bouse de JS implique chez les entreprises. Aucun IDE disponible, des disparités flagrantes d'interprétation et de perfs entre les navigateurs et leurs différentes versions, la nécessité d'utiliser des librairies tampons (identiques sur 80% des sites mais chargées à chaque fois...)

Mon rêve : un ECMAScript. Object Oriented, classes, packages, espaces de noms, visibilité, héritage, etc. Un language moderne en fait.

'culés

avatar iNabil | 

"il serait temps de sortir un js2 avec des classes."

patience, ça viendra, et non, il n'est pas "temps"

en ce moment tout le monde commence seulement à se mettre à jour pour faire marcher toutes ces nouvelles technos du web, et déjà que webgl peu de navigateurs le supportent si on se met a sortir des trucs dans tous les sens ça ne va pas aller...

avatar romainbessuges | 

Metaplasme tu mets le doigt sur un aspect véritablement fondamental sur lequel n'insiste aucun marketeux : le moteur de rendu. Pour moi c'est fondamental la vitesse à laquelle la page et dessinée, la façon dont on peux se mouvoir dedans, etc.

A ce propos, de nombreuses pratiques de webdesign existent pour faciliter le travail du moteur de rendu et j'invite tous les webdev présents ici à s'y intéresser.

avatar Nihondjin | 

Avec un SSD Firefox n'est pas lent du tout...

avatar daito | 

[quote]plus rapide que le moteur V8 de Google et [b]SunSpider[/b] d'Apple. [/quote]

Pourquoi la rédaction ne corrige pas cette grosse erreur??

avatar mac do | 

en lisant les commentaires c'est a croire qu'on est une classe de geeks. écoutez bien ceci, jè 1 pc portable hp dv7 C2Duo win 7 et j'utilise chrome 5 a cause de la fluidité de sa navigation par onglets, safari 5 lorsque je recherche seuelement la rapidité d'affichage des pages web, ou firefox 3.6 lorsque certaines technologies s'exécutent mal sous chrome.

vous pourrez savoir lequel nous préférons. bien bonsoir a vous

avatar vintz72 | 

Je ne sais pas comment font ceux qui font planter Firefox, parce que chez moi, il ne plante jamais (en tout cas, jamais tout seul, les plugins (et non les extensions) étant toujours à l'origine d'un crash). D'ailleurs, avec Firefox 4, le problème n'arrivera plus puisque les plugins seront isolés.

Sinon, une remarque pour Sephi-Chan : vire systématiquement les commentaires dans le HTML généré : ils ne servent plus à rien sur le navigateur, et alourdissent les pages pour rien !

avatar Sephi-Chan | 

Ça me fait rire ceux qui critique la syntaxe de Javascript, qui veulent des classes, etc. Javascript est un langage différent de ceux que vous pouvez connaître, pourquoi vouloir le transformer ? C'est comme si vous demandiez à Ruby d'avoir des interfaces, à Objective-C de ne pas avoir sa notation de messages ou même à PHP d'être cohérent (str_replace, strpos, parse_str, trois fonctions, trois notations, cool) !? Prenez-le comme il est : un langage orienté prototype, et allez vous documenter (http://javascript.crockford.com/ une mine d'informations, par exemple).

[quote=Douglas Crockford]
JavaScript, aka Mocha, aka LiveScript, aka JScript, aka ECMAScript, is one of the world's most popular programming languages.
[/quote]

Cf. http://www.crockford.com/javascript/javascript.html

[quote= romainbessuges]
Mon rêve : un ECMAScript. Object Oriented, classes, packages, espaces de noms, visibilité, héritage, etc. Un language moderne en fait.
[/quote]

Oui, en gros tu ne veux pas d'ECMAScript, en fait. Il est orienté prototype, tes classes sont des fonctions. Les espaces de noms et packages sont largement supportés puisque tu peux tout encapsuler dans des objets (Prototype (dont je n'aime pas la philosophie) utilise ainsi des objets tels que Ajax.Request, Ajax.Response, etc. Ne sont-ce pas des packages ?). Quant à l'héritage, ce type de mixin n'existe pas à proprement parlé dans l'orienté prototype, mais tu peux étendre le prototype d'un objet avec celui d'un autre objet, cf. http://javascript.crockford.com/prototypal.html et http://javascript.crockford.com/inheritance.html). Quant à la visibilité : http://javascript.crockford.com/private.html.

[quote=vintz72]
Sinon, une remarque pour Sephi-Chan : vire systématiquement les commentaires dans le HTML généré : ils ne servent plus à rien sur le navigateur, et alourdissent les pages pour rien !
[/quote]

Tu m'as vraiment pris pour une endive… -_-
Je parle de commentaires de CSS. J'ai un besoin spécifique qui consiste à afficher la feuille de style du site (un système en marque blanche) pour permettre à l'utilisateur de la modifier (en fait, il crée un [i]fork[/i] de cette feuille de style par défaut), donc pour ça je vire le commentaire inutile que LESS (http://lesscss.org/) ajoute quand il génère une feuille de style, car ça fait désordre.

Sephi-Chan

avatar daito | 

L'erreur du moteur SunSpider d'Apple n'est toujours pas corrigée......

CONNEXION UTILISATEUR