# Applet

Une appliquette$^,$, applette ou applet$^,$$^,$ est un logiciel ou un mini-logiciel qui s'exécute dans la fenêtre d'une autre application, en général un navigateur web.

## Terminologie

Le terme « applet » est issu de l'anglais app (« application ») et -let (suffixe indiquant la petite taille), d’autres sources indiquent qu’il pourrait s’agir de l’acronyme d’« application light weight »$^,$ (litt. « application de petite taille »). Les francisations proposées sont « applette », « appliquette » et « applet » tel quel$^,$$^,$. Pour le mot « applet », l’usage hésite entre le masculin et le féminin, le Larousse et le Grand Dictionnaire terminologique indiquent pour leur part que le mot est masculin$^,$.
En raison de la domination du langage Java dans ce domaine, « applet » est souvent considéré comme synonyme d'applet Java.

## Objectif

Cette approche offre un moyen de fournir à l'utilisateur, sans installation d'un logiciel ad hoc (souvent appelé client lourd), une application ergonomique et réactive car pour bonne part animée par son navigateur web plutôt que par le serveur distant.
Un applet est écrit dans un langage différent du langage de script utilisé dans une page HTML. Les scripts sont interprétés tandis que les applets sont compilées, permettant ainsi, après un temps de chargement toutefois plus long que les scripts, d'avoir de meilleures performances et une meilleure interactivité. Le langage utilisé donne alors accès à une bibliothèque de composants d'interface graphique et à une API. Ces applets sont appelées grâce aux scripts ou à certains tags (object, embed) présents dans le code html.
Le logiciel placé dans l'applet peut être de tout type, il peut donc s'agir d'une interface de messagerie instantanée, d'un jeu ou encore d'une animation. Il nécessite toujours l'installation d'une machine virtuelle sur le système d'exploitation.
Bon nombre d'applets sont, en 2005, programmées en langage Java. Par extension, on peut actuellement rencontrer des applets s'appuyant sur la technique Adobe Flash ou Silverlight (Rich Internet Application).

## Infrastructure d'une applet

Le terme applet apparaît avec les applets Java mais peut être généralisé. Une applet est de façon générale un script qui, compilé sur le serveur, est chargé par le navigateur pour augmenter l'interactivité et les fonctionnalités de l'interface visuelle. Le navigateur nécessite d'être compatible avec la technique utilisée par l'applet ou, s'il ne l'est pas, de pouvoir l'être en installant un plugin. Ce plugin, selon sa fonctionnalité, peut être un moteur multimedia(quicktime, unity 3D,windows media), une machine virtuelle (java, Flash, silverlight) ou un plugin de rendu (MathML, VRML). Le lancement de l'applet, plugin peut être détectée directement par le navigateur, ou bien à l'aide de balise html spécifique contenant du code JavaScript. L'installation de ce dernier pourra alors être proposée à l'utilisateur.
Une fois le plugin installé, l'applet n'a pas accès aux ressources externes du navigateur car elle s'exécute dans un espace particulier : le bac à sable ou sandbox). Le navigateur propose quelques ressources internes dont les cookies du navigateur, de la page html,de l'environnement d'exécution de l'applet (Evercookie (en): (LSO flash/silverlight). Ces règles de sécurité peuvent être modifiées mais nécessitent un accord explicite de l'utilisateur pour être activées. Ainsi, une applet ne pourra lire un fichier situé sur l'ordinateur ou actionner la webcam de l'utilisateur qu'après avoir obtenu l'autorisation explicite de le faire.
Le fait d'apposer une signature numérique à l'applet offre à ceux qui l'installent un moyen de s'assurer que ce qu'ils téléchargeront provient bien de l'auteur, n'a pas été modifié et que le tout a été certifié par un organisme de confiance.

## Avantages et inconvénients

L'avantage de ces techniques dépend fortement côté développeur des outils fournis (débogage et animation) et de la richesse des bibliothèques (sécurisation).
* Quel que soit l’applet ; le fichier lors du téléchargement sur le client demande un délai côté client qui peut être pénible
* Le développement d'un site contenant des applets impose, même si on peut utiliser un éditeur de texte basique, un environnement de développement intégré permettant principalement d'accélérer l'écriture du code grâce à des aides, des outils (complétions, compilateur, vérificateur de syntaxe, debugeur).
* Les moteurs de recherche ne peuvent indexer les applets binaires (flash, java, silverlight) contenant du contenu multimédia (image texte son vidéo). Un site entièrement binaire doit prévoir une version html pour pouvoir être interprété par les moteurs de recherche et rendre possible le référencement. Certains moteurs de recherche sont capables d'analyser des fichiers binaires (applets, images, vidéos…).