Oracle a récemment annoncé que les Applets Java seraient dépréciés à partir de la version 9 du JDK (à paraître en 2017). Une annonce de plus vers la fin des plugins au sein des navigateurs, entamée depuis longtemps par AdobeFlash pour diverses raisons.
Si les applets seraient fonctionnellement remplaçables par JavaWebStart, cette disparition devrait plutôt se faire au profit de l’éco-système HTML5. WebGL, web-socket, web-workers, webRTC/ORTC ou le contreversé Encrypted Media Exetensions : de plus en plus de standards du W3C (voire conjoints à l’IETF) tendent à rapprocher, à tord ou à raison, nos navigateurs web de machines virtuelles complètes. Il reste cependant des choses encore hors de leur portée, notamment en termes d’accès à nos périphériques.
Depuis quelques années, le W3C forme des groupes dédiés à la construction d’API haut niveau spécifiques à chaque catégorie de périphériques standards (webcam, micro…). D’une part cette approche exclut durablement tous les périphériques exotiques. Une startup ayant développé un nouveau gadget ne pourra pas proposer à un tiers de développer une application web l’utilisant sans installer des drivers sur la machine de l’utilisateur, machine pouvant être tout aussi exotique que le gadget à piloter.
D’autre part, même les périphériques « classiques » ne sont pas encore tous supportés. Un exemple : les dispositifs de signature électroniques à carte SIM (ou smartcard), tels que ceux utilisés en France pour signer les réponses à appels d’offres publics. Ni l’API WebCrypto ni l’API Key Discovery ne permettent de se passer du middleware, alors même qu’un standard USB (le CCID) est dédié à ce type de périphérique (voir ici ou là). Ce manque été abordé lors du workshop « Authentification, hardware tokens and beyonds » en 2014 mais l’implémentation de CCID dans les navigateurs ne semble pas à l’ordre du jour.
Ces deux freins pourraient bientôt sauter : un draft W3C non officiel, mis à jour le 17 février 2016 par des employés de Google, spécifie l’accès bas niveau à l’USB depuis un navigateur web. D’après leur wiki, Firefox est également intéressée par WebUSB depuis 2011. Affaire à suivre…
À noter : le développement de l’accès bas niveau à l’USB n’est pas opposé à la création d’API haut niveau centrées sur un type de périphérique puisqu’elles permettent l’accès à tous les périphériques de ce type ; même s’ils ne sont pas connectés en USB.