Pour les développeurs d'un moteur HTML5, Safari est un enfer

Pierre Dandumont |

Visiblement, la façon dont Apple gère Safari énerve certains développeurs. En effet, alors que les navigateurs majeurs sont développés au fil de l'eau avec des mises à jour très régulières et des évolutions étalées dans le temps, Apple continue à travailler avec des mises à jour majeures plutôt espacées. Et pour les concepteurs de Construct, un moteur de rendu pour les jeux vidéo qui emploie le HTML5, c'est un problème.

Construct permet de créer des jeux en HTML5.

Safari est un enfer

Ashley Gullen, un des développeurs de Construct, a posté un long message assez énervé sur le sujet, lié à la sortie de Safari 16.4. Il explique qu'une mise à jour — la première bêta de Safari 16.4 — a cassé une fonction utilisée par le moteur de rendu. Et le problème, selon lui, c'est qu'il y a finalement peu de moutures intermédiaires : la version 165 de Safari Technology Preview, sortie entre la première bêta et la version finale, souffrait du même bug. Il a fallu attendre la 166 pour que le bug soit corrigé, et elle est arrivée un jour avant la publication de Safari 16.4.

L'icône de Safari Technology Preview n'a pas été imaginée par Anthony Nelzin-Santos.

Comme il l'explique, la façon de développer un peu erratique d'Apple pose du coup beaucoup de problèmes pour les personnes qui dépendent du navigateur, surtout en prenant en compte le fait que les versions de développement (Safari Technology Preview) n'existent que sur Mac.

La version de test en action (image Apple).

Il donne un autre exemple, lié lui aussi à Safari 16.4 : un bug a été découvert au dernier moment. Il ne venait pas d'Apple, mais de Google, et la correction dépendait donc in fine des développeurs de Construct. Et une question s'est posée : quand fallait-il corriger le bug ? Avec les navigateurs concurrents, la date de sortie des nouvelles versions est connue, et régulière. Une fois un bug trouvé avec la version bêta de Chrome, par exemple, les développeurs ont une bonne idée du temps dont ils disposent pour corriger le problème. Mais avec Safari, ce n'est absolument pas le cas : Apple peut sortir la mise à jour le lendemain… ou dans un mois. Et un simple bug devient donc une urgence ou — plus exactement — peut-être une urgence.

Apple traîne… et casse

Un troisième exemple donné est encore pire. Apple a ajouté une fonction avec Safari 16.4 (OffscreenCanvas), mais elle n'est pas totalement complète : certains cas précis sont absents, comme la prise en charge de WebGL. Comme l'explique le développeur, ce point n'est pas stricto sensu un problème, et le souci vient du fait qu'il a été assumé que la fonction était utilisable dans tous les cas. Mais il précise aussi qu'Apple a implémenté la fonction 4 ans et 6 mois après Google, et qu'attendre 4 ans et 9 mois pour éviter de casser l'existant en fournissant une fonctionnalité exhaustive aurait été une bonne idée.

Ce n'est pas nouveau

Il explique aussi que ce problème n'est absolument pas nouveau : dans le cas de Construct, le programme a été rendu inutilisable en partie par Safari 11.1, 11.2.2, 14, 15, 15.x (jusqu'à 15.5) et 16. Il évoque par ailleurs que certaines fonctions sont présentes sous macOS mais pas sous iOS ou iPadOS, par exemple.

Que faire ?

Ashley Gullen suggère plusieurs solutions. La première serait un peu de transparence, tant sur les corrections de bugs que sur les dates de sortie. La seconde serait de séparer le développement de Safari de celui de l'OS, et de proposer des versions de test pour iOS et iPadOS. Car en l'état, il explique que pour tester son programme avec les versions bêta de Safari, il doit aussi installer les versions bêta des différents OS. Des points qui permettraient à Safari de devenir un meilleur navigateur.

Accédez aux commentaires de l'article