Présentation d'Emacs

Emacs est souvent considéré comme un système d'exploitation (OS) en raison de sa capacité à orchestrer des applications et des utilitaires au-dessus du noyau du système d'exploitation. Cependant, cette comparaison n'est pas tout à fait exacte. Emacs offre un accès intégré aux services système de l'OS, tels que le système de fichiers et le réseau, ce qui permet aux utilisateurs de créer des comportements de client personnalisés.

Modèle client-serveur

Le modèle client-serveur est un patron d'interaction informatique courant où une tâche est divisée entre le fournisseur d'une ressource (le serveur) et le demandeur de cette ressource (le client). Le client envoie une demande au serveur, qui répond ensuite avec une réponse. Ce modèle peut être implémenté localement ou via un réseau, avec des architectures logicielles de style REST.

Emacs en tant que client

Emacs offre de nombreuses bibliothèques, intégrées et tierces, pour implémenter un client. Ces bibliothèques couvrent les préoccupations suivantes : l'interface utilisateur (UI), la communication avec le serveur (Client Edge) et la gestion des données locales (Local Database). Parmi ces bibliothèques, on peut citer URL, Socket (TCP/UDP), SMTP et SQLite.

Les exigences déterminent le niveau de complexité requis pour mettre en œuvre le client Emacs. Si un utilitaire de ligne de commande existe déjà pour effectuer les tâches lourdes, cet utilitaire peut être réencadré en tant que « service » accessible via un appel shell.

Exemple de client wttr.in

wttr.in est un service web de prévisions météorologiques orienté console. Il prend en charge la sortie JSON, ce qui nous permet de créer une commande Emacs wttr qui demande une localisation, effectue la requête HTTP, traite la réponse JSON et affiche le résultat dans le mini-tampon.

(defun wttr--request-url (location)
     (format "http://wttr.in/%s?format=j1" location))

Enfin, nous pouvons extraire les valeurs souhaitées de la réponse JSON pour alimenter le message qui sera envoyé au mini-tampon.

Emacs offre une grande flexibilité et une capacité d'intégration avec des utilitaires de ligne de commande, ce qui en fait un outil puissant pour les utilisateurs qui reconnaissent les opportunités qu'il offre.