Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Pensez-vous que les navigateurs devraient utiliser le même moteur de rendu HTML ?
Serait-il bénéfique pour les développeurs et le Web ?

Le , par imikado

0PARTAGES

7  4 
Pensez vous que les navigateurs devraient utiliser le même moteur de rendu ?
Je viens de publier un billet sur cette question: et si les navigateurs utilisaient le même moteur de rendu ?

Le billet: http://blog.developpez.com/ducodeetd...le-meme-moteur

Aujourd’hui, lorsque vous naviguez sur internet, vous ne vous en rendez peut-être pas compte, mais ce que vous voyez dans votre écran sur chaque site est un compromis entre ce qu’il est possible de faire actuellement et les contraintes imposées par certains navigateurs.

Opera a décidé en février dernier d’abandonner son propre moteur rendu au profit de WebKit, justement c’est l’objet de cet article.

Le travail autour du moteur de rendu
Comme vous aurez pu le comprendre, la partie la plus lourde à développer est le moteur de rendu, c’est de lui que va découler votre expérience de navigation, c’est son niveau d’implémentation qui vous permet de bénéficier des avancées actuelles, et c’est encore lui qui va permettre ou au contraire freiner les développeurs Web dans leur créativité.

Pourquoi chaque navigateur continue à développer son propre moteur de rendu ?

Avec le coup de projecteur dont ont bénéficié HTML5 et CSS3 ces derniers temps (notamment avec la chasse au flash mené par Apple), chaque navigateur a investi du temps et de l’argent pour être toujours en tête concernant l’implémentation de ces nouveaux standards, qui je le rappelle ne sont toujours pas finalisé actuellement (RC pour le moment).

Le moteur de rendu est donc un atout qu’il faut préserver, un avantage à mettre en avant. Il existe un nombre important de moteurs de rendu Web dont les plus importants sont Webkit (open source) utilisé par safari, Blink, utilisé par Chrome/Chromium et désormais Opera, Gecko utilisé par Firefox ou encore Trident pour Internet Explorer.

Un problème en partie lié à la fragmentation des versions des navigateurs

Pour un développeur, il doit donc faire un compromis entre ce qu’il pourrait faire (car faisant de la veille) et ce qu’il est contraint de faire à la vue du navigateur le plus restreignant de sa cible (avant c’était ie6, désormais ie7).

Et pour les développeurs ?
Ce serait un cadeau de Noël perpétuel : développer une fois, tester sur un navigateur sans se demander si le site s’affichera correctement sur un autre navigateur.

Vous ne pouvez pas imaginez la frustration d’un développeur Web passionné qui d’un coté lit un article/tutoriel sur une nouvelle fonctionnalité, la teste sur son poste en local et se voit répondre par son manager/responsable « c’est bien joli/intéressant ton truc, mais est-ce que ça marche sous ie7/8 ?? »

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de jreaux62
Rédacteur/Modérateur https://www.developpez.com
Le 17/08/2013 à 9:24
L'opensource est absolument génial, j'en conviens.
Motivé par la passion.

Mais ici, on parle de business. Gros business.
Motivé par le pognon.

Puisqu'on parle de "moteur"... Je vois mal les sociétés automobiles mettre leur connaissances en commun (opensource) pour développer ensemble "la voiture parfaite" dans la joie et la bonne humeur.
Ca n'existe que dans le monde des Bisounours.
11  3 
Avatar de Grabeuh
Membre confirmé https://www.developpez.com
Le 19/08/2013 à 15:45
10  2 
Avatar de LSMetag
Expert confirmé https://www.developpez.com
Le 19/08/2013 à 15:50
Dans les faits, utiliser un même moteur conforme au W3C permettrait d'accroître la compatibilité des sites avec tous les navigateurs.

Le problème, c'est que ça tuerait l'innovation, surtout quand on parle du W3C qui met plus de 10 ans à standardiser une technologie. Si les navigateurs deviennent de plus en plus bons, c'est parce qu'ils cherchent à faire mieux que les autres.

Le mieux reste que chacun utilise sa technologie, en la gardant en conformité avec les standards du web, ce que seul IE a du mal à faire.
8  0 
Avatar de jreaux62
Rédacteur/Modérateur https://www.developpez.com
Le 17/08/2013 à 9:11
Citation Envoyé par Muchos Voir le message
...Je ne vois pas comment on pourrait refuser l'idée d'un seul moteur de rendu...
Moi si :
"Sans saine concurrence, pas de progrès/évolution."
Pour s'en convaincre, il suffit de repenser au quasi-monopole imposé par Bill Gates/Windows/I.E. durant près de 2 siècles (fin XXème - début XXIème !).
I.E. s'est reposé sur ses lauriers, pendant que d'autres planchaient sur de nouvelles solutions.
Résultats : I.E. a (au moins) 10 ans de retard sur ses concurrents !

Sans concurrence, on serait encore tous sur I.E.4 !
Et on rêverait d'I.E.6 !

Tu parles d'un "cadeau de noël perpetuel" !
On aurait le même cadeau tous les ans...
15  8 
Avatar de tontonnux
Membre expérimenté https://www.developpez.com
Le 19/08/2013 à 15:34
Je n'ai pas voté car il manque la seule possibilité de réponse qui me convienne, à savoir:

Non, chacun pour soit, que le meilleur tire les autres vers le haut !
Jamais la fondation Mozilla n'acceptera une situation où tout le monde travailleraient sur le même moteur. Et ils ont bien raison.

La concurrence, ce n'est pas seulement faire des choses en plus des autres, mais c'est aussi les faire différemment.

Or, si tout le monde travaillent sur le même moteur, à partir du moment où une fonctionnalité sera implémentée, elle le sera d'une manière bien définie.
Qui alors sera en mesure de trouver une autre façon qui pourrait très bien:
  • être meilleure ou plus performante
  • ouvrir de nouvelles perspectives qui n'avaient même pas été imaginées avant


Le problème aujourd'hui n'est absolument pas qu'il y a trop de moteurs, mais qu'il existe encore "en activité" des moteurs ne respectant pas les standards.
A partir du moment où, même Microsoft s'attache maintenant au respect des standards, on ne devrait plus jamais se retrouver face à la situation IE6/7 (puis 8...).
Pourquoi aujourd'hui vouloir "tuer" la concurrence ? Ca ne fera pas disparaître les IE6/7 encore en circulation (donc ne réglerait aucun problème des intégrateurs d'aujourd'hui), et la situation actuelle ne devrait plus se reproduire.

Le seul élément qui peut à la limite être sujet à débat, c'est la façon dont chaque moteur intègre de façon expérimental les nouveautés avec leurs préfixs (-moz etc...). Là, oui il aurait un grand intérêt à harmoniser tout ça. Mais ça ne justifie en rien de supprimer les moteurs existants.

Et qu'on ne vienne pas me dire "wé, mais met toi à la place des développeurs !"
Je suis développeur web, et dans mon activité, tenez vous bien... je dois encore rester compatible IE6 !
9  2 
Avatar de grunk
Modérateur https://www.developpez.com
Le 19/08/2013 à 15:42
Que chacun ait son moteur de rendu est une bonne chose , ça doit en principe créer une émulation entre les acteurs du milieu et nous permettre d'avoir de meilleurs outils.

En revanche qu'ils se mettent tous d'accord pour respecter certaines "règles" ça ne sera pas du luxe.
Surtout au niveau CSS en fait , c'est tellement pénible de devoir jongler avec les suffixe proprio (moins vrai maintenant) ou de devoir faire un "hack" parce que untel à décidé que telles marge ferait Xpx et l'autre Y.

Ca c'est vraiment lourd et ça n'apporte rien si ce n'est des librairies supplémentaires à inclure pour compenser ...
7  0 
Avatar de ctxnop
Membre chevronné https://www.developpez.com
Le 19/08/2013 à 19:50
Citation Envoyé par Master-NiKo Voir le message
J'aimerais bien que l'on demande au développeur C,C++ ou n'importe quel autre langage de programmer leurs logiciels de 5 manières différentes juste parce que les ordinateurs des gens pourrait interpréter l'affichage différemment...
Comment réagiraient-ils ? .... trop bien je dois faire mon logiciel 5 fois c'est normal c'est la concurrence ...

De plus dans le web au lieu d'apprendre 1 langage (facile) nous sommes confronté au php, javascript, objective C, C++, HTML, CSS ... on n'a pas le temps de faire joujou avec l'affichage.
Tu te plantes complètement de problématique... La question n'est pas de savoir si c'est bien ou non d'avoir à développer le site 5 fois parce qu'il y a 5 foutus rendus différents. Évidemment qu'on ne veut pas ça.
La question est "est-ce qu'un moteur unique c'est bien ou non ?". Et cette réponse n'est pas du tout évidente comme tu le prétend.

D'un côté on obtiendrai un rendu identique partout et donc ça résoudrait le problème dont tu parles, d'un autre coté ça risque de tuer l'évolution, ou de la freiner fortement.

Or, partant du principe que, pour résoudre le problème d'avoir à développer plusieurs fois la même chose, il y a plusieurs autres solutions comme par exemple créer un standard avec une certification à la clef pour les navigateurs afin que tout ceux qui obtiennent la certification aient le même rendu (mais pas la même façon de l'obtenir, ni les mêmes performances). Et donc, on est nombreux a penser qu'il est préférable de ne pas risquer l'innovation. Ça ne veut pas dire qu'on est pour un affichage différent sur chaque moteur.

En plus tu sembles te plaindre du nombre de langages auquel tu es confronté, mais redescend un peu de ton piédestal, tu crois qu'on dev tous uniquement en C ? Ma journée de boulot je la passe principalement en C#, mais je fais également du VB.Net, VB6, SQL, de l'HTML, du XML, du CSS, du javascript, du vbscript, du C, du C++, du java, bash, powershell, python et perl.
Tu crois que j'ai du temps a perdre moi quand ce foutu contrôle DevExpress s'affiche pas comme je le voulais ? Que les styles s'emmêlent les pinceaux et donnent un rendu dégueulasse ? Que les paramètres système de l'utilisateur changent les couleurs, les tailles de polices, etc... et que du coup ca casse toute la mise en forme que je me suis fait ch*** à faire ?

Sans compter que tu te plante également dans ta comparaison. La comparaison la plus proche c'est quand on code en Java par exemple, le code peut s'exécuter sur plusieurs JVM différentes. Et ce problème de changement d'affichage, et même de comportement n'apparait pourtant pas (enfin si mais pas dans la même mesure que pour le web). La raison est simple : il y a des standards, si la JVM les supportent tous correctement, tu auras le même code alors que tu utilises une JVM différente.
Et je te rappel qu'en C/C++ on doit "s'amuser à re-developper 5 fois le même soft". Hé oui, a part la librairie standard, très très insuffisante, les fonctions ne sont pas les même suivant les OS (même au sein des différentes versions de Windows). Alors on limite la casse avec des libs portables, mais elles ne sont pas portables partout, et les gens qui ont fait ces libs portables, ils ont bel et bien codé X fois la même lib pour les différentes plateformes... Crois moi, ça ne nous amuses pas, mais pour autant on ne demande pas un OS unique, une plateforme matérielle unique...
7  1 
Avatar de azias
Membre éclairé https://www.developpez.com
Le 20/08/2013 à 12:26
De toute manière un moteur de rendu unique est inenvisageable, que ce soit pour des raisons commerciales (chaque fournisseur à besoin de se démarquer de la concurrence) ou techniques (un moteur unique qui servira sous windows, linux, mac, iOS, android, etc...?).

Par ailleurs, c'est justement le boulot d'une norme de faire ce travail d'harmonisation, en aucun cas d'avoir une implantation unique. L'idée me paraît débile à tout point de vue, je ne comprends même pas qu'il se trouve des personnes non seulement pour défendre l'idée mais pour la trouver crédible un seconde. On n'est pourtant pas le 1er avril, je ne comprends pas.

Les vrais problèmes auxquels je peux être confronté en pratique:
  • développer par rapport à un moteur de rendu et pas par rapport aux normes. Les normes sont parfois floues et c'est au développeur d'en faire une utilisation valable quelle qu'en soit la mise en oeuvre par les différents navigateurs.
  • Les navigateurs qui ne respectent pas les normes. C'est vrai qu'après tout les normes web n'ont pas de caractère obligatoire, mais c'est quand même très embêtant. Cela-dit je pense que c'est qu'en même en partie à cause des développeurs web que IE a aussi peu respecté les normes pendant aussi longtemps. Combien de sites s'affichaient correctement uniquement parce que le développeur avait inséré du code supplémentaire spécial IE? En ce qui me concerne, je crois que c'est 100% des sites que j'ai développé qui contiennent du code IE. Je pense si la quasi intégralité des sites s'étaient mal affichés avec IE mais correctement avec les autres, Microsoft se serait bougé le c.. bien plus rapidement.
  • Les évolutions de version. Respect des normes ou pas, il n'y a pas vraiment d'autres choix (à partir celui de se priver d'une partie de ses clients) que de s'arranger pour proposer des sites qui fonctionnent sur de veilles versions de navigateurs. Les technologies avancent vite mais très rares sont les personnes qui sont à jour en permanence (beaucoup de nos clients fonctionnent encore sous windows 2000).


De toute façon il me semble que le vrai problème arrive quand on conçoit un site de manière graphique au lieu de le faire de manière logique. HTML est structuré de manière logique et son rendu est basé sur une logique de flux. Tous les développements de normes web ces dernières années sont aller toujours plus loin dans la séparation du contenu et de son apparence. Pourtant les responsables produits ou les commerciaux pensent d'abord un site web en terme d’apparence. Combien de fois les spécifications de pages web qu'on m'a demandées de développer n’étaient que des images, copies d'écran ou des sorties d'illustrator? Peut-être 99%! J'en suis arrivé à comprendre pourquoi il a existé des boîtes qui ne développaient des sites qu'en flash "tu veux que ça ressemble à ca? Ok, ce sera inutilisable et immaintenable mais ce sera graphiquement exactement ce que tu veux".

Sur le même principe je propose:
  • un compilateur unique pour chaque langage (un moteur de rendu n'est rien d'autre qu'un compilateur HTML/CSS)
  • une taille d'écran unique avec une résolution unique
  • une taxe obligatoire sur notre abonnement internet afin de financer le développement du moteur de rendu unique
  • un moteur de recherche unique, ah non ça c'est déjà le cas! Et c'est vrai que ça nous permet d'en avoir une maîtrise parfaite
7  1 
Avatar de RhoManu
Membre du Club https://www.developpez.com
Le 25/08/2013 à 14:04
Citation Envoyé par jreaux62 Voir le message
comment Bill Gates a écrasé/racheté/spolié ses "concurrents" pour "obtenir" le monopole du marché durant de (trop) nombreuses années...
Ben euh, tu sais, quand je lis ça :
Citation Envoyé par jreaux62 Voir le message
Steve Jobs était un visionnaire.
Bill Gates un opportuniste (un "voleur d'idées"...).
Je me dis que tu essaies d'oublier de toutes tes forces tout ce qu'Apple (et notemment Jobs) a "volé" et tout ce que Microsoft a introduit. Il n'y a pas une balance du bien et du mal qui penche en faveur de l'un ou l'autre, les deux sont des sociétés puissantes dont les dirigeants ont fait ce qu'ils ont estimé nécessaire pour élever leur société à cette position au détriment des autres - et souvent au détriment des consommateurs.
5  0 
Avatar de ctxnop
Membre chevronné https://www.developpez.com
Le 19/08/2013 à 16:01
Il y en a beaucoup plus que ca : http://fr.wikipedia.org/wiki/Moteur_de_rendu_HTML
Même si beaucoup sont basés les uns sur les autres, la moindre différence peut engendrer une différence de rendu.

Pour moi il ne devrait pas y avoir de moteur unique, c'est très mauvais pour la concurrence.
Il devrait y avoir plutôt y avoir une sorte de comité de certification qui créerait des standards, de vraies normes (le W3C ne fait que des recommandations). Ce comité pourrait alors certifier les applications qui répondent aux normes. Ce qui assurerait le même rendu sur toutes les applications qui ont reçues la certification.
De cette manière, tous les navigateur auraient le même rendu final, mais la méthode pour obtenir ce rendu ne serait pas imposée et il pourrait y avoir concurrence.

Après, ajouter des "extensions", ca ne me choque pas, tant qu'elles sont bien identifiées comme telle, un peu comme les -moz-xxxx en css. Ce qui permet des évolutions rapides sans attendre une nouvelle version de la norme, mais qui du coup n'assure pas le support par tous les navigateurs.

Et puis bon, perso, je suis partisan d'un web moins sexy mais accessible partout, par tous. Tout le monde veut se faire plaisir sur son site web avec des super effets jquery, des design super classes, toussa toussa. C'est cool mais, même sans parler de IE vs Firefox vs Chrome vs ..., vous pensez aux navigateurs en ligne de commande ? aux smartphone ? aux tablettes ? les consoles de jeux qui intègrent toutes un navigateur ? aux liseuses ? aux écrans brailles ?
La plupart des ces équipements n'ont pas de souris. Alors les menus déroulants au survol, les effets parallax, et j'en passe, bah c'est juste nase pour ces équipements.
5  1 
Responsables bénévoles de la rubrique Java Web : Mickael Baron - Robin56 -

Partenaire : Hébergement Web