IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

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 !

Vue.js 3 abandonne finalement son plan visant à prendre en charge Internet Explorer 11
Les développeurs qui supportent le navigateur devront rester sur Vue.js 2.7

Le , par Bill Fassinou

106PARTAGES

7  0 
Initialement publié sans le support d'IE11 en septembre 2020, Vue.js 3 ne prendra finalement pas en charge le célèbre navigateur de Microsoft. L'équipe Vue.js avait prévu d'ajouter le support d'IE11 peu de temps après la publication de Vue.js 3, dans une version mineure, mais a finalement décidé d'abandonner l'idée, après de nombreuses discussions sur le sujet. Au lieu de cela, elle va rétroporter le plus grand nombre possible de fonctionnalités de Vue.js 3.0 (comme Composition-API) dans Vue.js 2.x. Cela supprime également la nécessité de prendre en charge IE11 par toutes les bibliothèques tierces.

L'équipe Vue.js abandonne définitivement le support d'IE11

En septembre 2020, l'équipe de développement du framework a publié Vue.js 3.0 et, en ce qui concerne la migration et le support d'IE11, elle avait déclaré ce que suit : « L’équipe a repoussé la construction de la migration (construction v3 avec comportement compatible avec la v2 + avertissements de migration) et le support d'IE11 en raison de contraintes de temps. Par conséquent, les utilisateurs qui prévoient de migrer une application v2 existante ou qui ont besoin du support d'IE11 doivent être conscients de ces limitations pour le moment ». Elle avait prévu de se concentrer sur eux au quatrième trimestre 2020.



Cependant, après une longue période de concertation et de dialogue avec la communauté, elle a annoncé en avril dernier qu'elle revenait sur sa décision d'ajouter le support d'IE11 à Vue.js 3. « Nous avons été interrogés sur la prise en charge d'IE11 depuis le début du développement de Vue.js 3, en remontant jusqu'à la fin de 2018. De nombreux utilisateurs ont demandé si Vue.js 3 prendrait en charge IE11, et notre plan initial était de publier Vue 3 et de le laisser se stabiliser en premier, et d'ajouter la prise en charge d'IE11 à un stade ultérieur », a déclaré l'équipe dans une note sur la page GitHub du projet.

« Au cours du processus de développement, nous avons également fait des recherches et des expériences pour la compatibilité IE11 sur le côté, mais en raison de la complexité impliquée et de la quantité d'autres travaux à portée de main, il a été délaissé sur la route. Lorsque nous examinons à nouveau le problème aujourd'hui, en 2021, le navigateur et le paysage JavaScript ont bien changé. Davantage de développeurs utilisent désormais les fonctionnalités des langages modernes et, surtout, Microsoft a commencé à éloigner activement les utilisateurs d'IE en investissant dans Edge », a-t-elle ajouté.

L'équipe estime en effet que son choix est aussi motivé par le fait que Microsoft a commencé également à abandonner le support d'IE11 dans ses propres projets majeurs, comme Microsoft 365. Elle a également observé cette dynamique au sein d'autres communautés d'outils pour le Web. Il y a quelques semaines, WordPress a pris la décision d'abandonner le support d'IE11. L'équipe Bootstrap a fait pareil dernièrement avec la sortie de Bootstrap 5. Selon des statistiques avancées par l'équipe, l'utilisation globale d'IE11 est en dessous de 1 %. D'après elle, lorsqu'il s'agit de sites Web et d'applications destinés au public, IE11 est en déclin rapide.

« Nous pensons que c'est l'occasion de repenser le support d'IE11 pour Vue 3 », a-t-elle déclaré. Les raisons évoquées par l'équipe se regroupaient en quatre grands axes, notamment : incompatibilité de comportement, charge de maintenance à long terme, complexité pour les auteurs de bibliothèques et la contribution à la pérennité d'IE11.

Incompatibilité de comportement

Selon l'équipe, le système de réactivité de Vue.js 2 est basé sur des getters/setters ES5. Vue.js 3 quant à lui exploite les proxys ES2015 pour un système de réactivité plus performant et plus complet, qui ne peut pas être polyfillé dans IE11. Selon elle, c'est le principal obstacle, car cela signifie que pour que Vue.js 3 prenne en charge IE11, il faut essentiellement livrer deux versions différentes avec un comportement différent : l'une utilisant le système de réactivité basé sur les proxys, et l'autre utilisant les getters/setters ES5 comme pour Vue.js 2.

Elle explique que le système de réactivité basé sur les proxys de Vue.js 3 offre une couverture quasi complète des fonctionnalités du langage. Il est capable de détecter de nombreuses opérations qu'il est impossible ou peu pratique d'intercepter dans ES5, par exemple l'addition/la suppression de propriétés, les mutations d'indices et de longueurs de tableaux, et dans les vérifications d'opérateurs. Le même code écrit pour la version Proxy de Vue.js 3 ne fonctionnera pas dans la version IE11. Cela créerait non seulement une complexité technique pour l'équipe, mais aussi une charge mentale constante pour les développeurs.

« Notre plan initial était de livrer les implémentations de réactivité Proxy et ES5 dans la version de développement de la version IE11. Lorsqu'elle est exécutée dans un environnement de développement compatible avec Proxy, elle détecte et signale toute utilisation non compatible avec IE11. Cela fonctionnerait en théorie, mais crée une énorme quantité de complexité, car cela nécessite de mélanger les deux implémentations et risque d'entraîner une différence de comportement entre le développement et la production », a-t-elle renchéri.

Charge de maintenance à long terme

D'après l'équipe, la prise en charge d'IE11 signifie également qu'elle devra prendre en compte les fonctionnalités linguistiques utilisées dans l'ensemble de la base de code et définir une stratégie de polyfill/transpilation appropriée pour les fichiers de distribution. Chaque nouvelle fonctionnalité ajoutée qui ne peut pas être polyfillée dans IE11 créerait encore une autre réserve de comportement. « Une fois que Vue.js 3 s'engage à prendre en charge IE11, il ne sera pas en mesure de s'en débarrasser avant la prochaine version majeure », constate l'équipe.

Complexité pour les auteurs de bibliothèques

Par ailleurs, l'équipe ajoute que la complexité serait encore quelque peu acceptable si elle pouvait être entièrement contenue dans Vue.js lui-même. Cependant, après avoir discuté avec les membres de la communauté, elle a réalisé que la coexistence de deux implémentations de la réactivité aurait inévitablement des problèmes pour les auteurs de bibliothèques également. En prenant en charge IE11 dans Vue.js 3, les auteurs de bibliothèques doivent essentiellement faire cet appel également.

Les auteurs de bibliothèques devront tenir compte de la version de Vue.js 3 utilisée par leur bibliothèque (en plus de la prise en charge potentielle de Vue.js 2) et, s'ils décident de prendre en charge IE11, ils devront créer leur bibliothèque en tenant compte de tous les avertissements relatifs à la réactivité ES5.

Contribuer à la pérennité d'IE11

« Personne n'aime supporter IE11. C'est un navigateur moribond, coincé dans le passé. Plus l'écosystème du Web progresse, plus le fossé à combler pour le prendre en charge s'agrandit. Paradoxalement, en prenant en charge IE11 dans Vue.js 3, nous lui donnons plus de raisons de rester. Compte tenu de notre base d'utilisateurs, l'abandon du support d'IE11 contribuera probablement à le rendre obsolète un peu plus rapidement », a déclaré l'équipe.

Pour ceux qui ont absolument besoin du support d'IE11

L'équipe a déclaré qu'elle est bien consciente que la véritable demande pour IE11 provient de ceux qui ne peuvent pas effectuer de mise à niveau : les institutions financières, les secteurs de l'éducation et ceux qui dépendent d'IE11 pour les lecteurs d'écran. Si vous construisez une application destinée à ces secteurs, vous n'avez peut-être pas le choix. De ce fait, elle recommande d'utiliser Vue.js 2 si vous avez besoin de la prise en charge d'IE11.

« Au lieu de contracter une dette technique importante pour Vue.js 3 et les futures versions de Vue.js, nous pensons qu'il serait plus judicieux de rediriger les efforts vers le rétroportage des fonctionnalités compatibles vers Vue.js 2 dans la version 2.7, et de garantir une expérience de développement plus proche entre les deux versions majeures », a déclaré l'équipe. Certaines des fonctionnalités qui peuvent être rétroportées vers la version 2.7 :

  • ajout du plugin @vue/composition-api dans Vue.js 2. Cela permettra aux bibliothèques basées sur Composition-API de fonctionner directement à la fois pour Vue.js 2 et Vue.js 3 ;
  • ajout de la syntaxe <script setup> dans les composants à fichier unique ;
  • ajout de l'option emits ;
  • amélioration des typages TypeScript ;
  • formaliser le support de Vue.js 2 dans Vite (actuellement via un plugin non officiel) ;
  • etc.

Source : Note de l'équipe Vue.js

Et vous ?

Quel est votre avis sur le sujet ?

Voir aussi

La version 3 de Vue.js, le framework JavaScript progressif, est disponible avec de nouvelles API et des améliorations de performance

Bootstrap 5 est officiellement disponible avec un nouveau logo, un nouveau composant offcanvas, des mises à jour pour les composants forms et abandonne jQuery

Microsoft va mettre fin au support de la première mouture de Microsoft Edge, ainsi qu'au support des services Microsoft 365 dans Internet Explorer 11 en 2021

Microsoft Edge trois fois plus rapide que IE 11 grâce à Asm.js, le navigateur offrira plus de sécurité

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

Avatar de Kulvar
Membre éclairé https://www.developpez.com
Le 16/05/2021 à 9:39
Quel est votre avis sur le sujet ?

On est mi-2021, Supporter IE11 c'est comme maintenir en vie un octogénaire dans le coma sous perfusion et assistance respiratoire.
Au bout d'un moment faut laisser la nature prendre son dû.
5  0 
Avatar de Madmac
Membre extrêmement actif https://www.developpez.com
Le 16/05/2021 à 20:59
Citation Envoyé par Kulvar Voir le message
Quel est votre avis sur le sujet ?

On est mi-2021, Supporter IE11 c'est comme maintenir en vie un octogénaire dans le coma sous perfusion et assistance respiratoire.
Au bout d'un moment faut laisser la nature prendre son dû.


De toute façon, une caisse enregistreuse n'a pas besoin des fonctionnalités offertes par un framework. Et dans les autres cas, l'utilisateur peut toujours changer pour un autre navigateur. L'analogie avec L'octogénaire a une certaine valeur si on considère que le côté moyenâgeux du navigateur. J'en vois une autre comparaison. C'est plutôt comme la censure. On pénalise tout le monde pour satisfaire une toute petite minorité.

Et cela fait plus d'une décennie que les concepteurs sont forcés de se limiter parce que leur navigateur n'était pas à jour. Je ne verserai aucune larme quand explorer va disparaître comme un dinosaure.
1  0 
Avatar de valaendra
Membre éclairé https://www.developpez.com
Le 17/05/2021 à 18:53
Citation Envoyé par AoCannaille Voir le message
Mouais... Pour moi il faudrait plutôt abandonner Javascript qui n'est qu'une béquille bancale et utilisé à tort et à travers pour des choses pour lesquelles il n'a pas été conçu à la base. Cela entraine une pelleté de framework à vocation standardisante mais ce n'est qu'un vœu Pieu...
Haa, JS et sa réputation sulfureuse car des devs l'ont utilisé à tord et à travers. Si on en reste à la manipulation d'un DOM XML, JS excelle en tout point. Pour le reste, c'est l'approche "moderne" dans le dev web. On vous vend du framework à gogo pour permettre aux boites d'interchanger un dev qui connait le framework X avec un autre qui connait le même framework X (et en plus ça le fait devant le client: "voyez, on est à la pointe". Les formations "pros" ont suivi le mouvement et on se retrouve avec une génération de dev qui connait les directives VueJs ou les hooks wordpress par coeur mais avec 0 abstraction, qui ne comprend pas le fonctionnement d'un for{} ou ne sait pas coder une fonction récursive sans avoir la soluce dans un tuto (et en français SVP, sinon c'est pas la peine).

Bref je dérive, la décision d'abandonner IE11 ne pourra qu'être bénéfique
1  0 
Avatar de Gugelhupf
Modérateur https://www.developpez.com
Le 17/05/2021 à 12:27
Microsoft a déjà installé Edge (basé sur chromium) via les MAJ sur Windows 10, il faut abandonner Internet Explorer.
0  0 
Avatar de air-dex
Membre expert https://www.developpez.com
Le 19/05/2021 à 18:23
Citation Envoyé par AoCannaille Voir le message
Mouais... Pour moi il faudrait plutôt abandonner Javascript qui n'est qu'une béquille bancale et utilisé à tort et à travers pour des choses pour lesquelles il n'a pas été conçu à la base. Cela entraine une pelleté de framework à vocation standardisante mais ce n'est qu'un vœu Pieu...
Le problème de JS est que c'est une technologie porteuse : retire-là et plus grand chose ne marche. Avant il existait des IPN nommés Flash, Java ou Silverlight, mais les créateurs de JS et une personne rancunière envers Adobe ont décidé que c'était caca donc ce n'est plus possible.

JS ne disparaîtra que lorsqu'un langage concurrent sera massivement tout aussi intégré profondément au navigateur que JS. WASM le permet un peu mais on reste encore loin du but.

Après il y a aussi le sens cloud de l'Histoire, où le navigateur et le reste de l'OS vont se confondre côté utilisateur/client. C'est tout naturellement que les frameworks arrivent sur le Web puisqu'il faudra bien que le navigateur se "desktopise". Ce n'est peut-être pas le sens de l'Histoire que toi et moi voulons voir arriver, bien au contraire, mais il va falloir s'y adapter.
0  0 
Avatar de AoCannaille
Expert confirmé https://www.developpez.com
Le 17/05/2021 à 14:47
Citation Envoyé par Gugelhupf Voir le message
[...] il faut abandonner Internet Explorer.
Mouais... Pour moi il faudrait plutôt abandonner Javascript qui n'est qu'une béquille bancale et utilisé à tort et à travers pour des choses pour lesquelles il n'a pas été conçu à la base. Cela entraine une pelleté de framework à vocation standardisante mais ce n'est qu'un vœu Pieu...

Enfin bon, quand Google aura réussi à se mettre chrome dans la même position que Internet Explorer 5 & 6, il aura les mêmes travers et dans 5 ans on sera reparti pour un tour....
2  3