ncurses
ncurses (de l'anglais « New curses », littéralement « Nouvelles malédictions ») est une bibliothèque libre fournissant une API pour le développement d'interfaces utilisateur à menu déroulant, en utilisant les caractères et couleurs d'un mode semi-graphique. Non seulement ce type d'interface utilisateur se conçoit de manière indépendante du terminal, mais il accélère le rafraîchissement d'écran, diminuant par là le temps de latence que subissent d'ordinaire les utilisateurs de shells à distance.
Développé par | Thomas Dickey |
---|---|
Première version | |
Dernière version | 6.5 ()[1] |
Dépôt | invisible-mirror.net/archives/ncurses |
Écrit en | C |
Système d'exploitation | GNU/Linux, BSD, macOS, Microsoft Windows et type Unix |
Environnement | POSIX |
Type | affichage en mode texte |
Licence | X11 |
Site web | invisible-island.net/ncurses |
Chronologie des versions
Beaucoup de langages de programmation intègrent aujourd'hui un lien vers cette bibliothèque : Python[2], Ruby[3], PHP[4], JavaScript[5], Perl[6], Ada[7] et Gambas[8].
Historique
modifierLa première bibliothèque semi-graphique, curses, a été programmée vers 1980 à l'université de Berkeley pour le portage du jeu Rogue sous Unix BSD. Elle utilisait la bibliothèque termcap, elle-même développée pour l'éditeur ligne vi[9].
Devant l'accueil fait à BSD curses, les Laboratoires Bell ont décidé de l'inclure dans la version 2 de Unix System V, avec quelques améliorations et en utilisant terminfo, base de données d'accès plus rapide, au lieu de termcap ; toutefois, étant donné la politique restrictive d'AT&T sur la protection des droits, cette version améliorée de curses eut moins de succès que la première[9]. Vers 1982, Pavel Curtis se mit à en développer un clone libre, pcurses, qui fut maintenu par plusieurs utilisateurs jusqu'en 1986[10].
Ncurses est une simulation libre de l'implémentation classique 4.4BSD de curses, dont l'évolution est maintenant arrêtée. La norme XSI Curses proposée par X/Open s'inspire explicitement de la version System V de curses.
Caractéristiques
modifierNcurses optimise les modifications de l'affichage, afin de réduire la latence perceptible lors de l'utilisation de shells à travers un réseau.
Projet GNU
modifierNcurses fait partie du projet GNU. Elle fait partie des rares fichiers GNU qui ne sont pas distribués sous la licence GNU GPL ou GNU LGPL. Elle est distribuée sous une licence similaire à la licence X11.
Le responsable du développement de Ncurses est Thomas Dickey.
Notes et références
modifier- (en) Thomas E. Dickey (d), « ncurses 6.5 », (consulté le )
- Curses Programming with Python - Python documentation
- ncurses Ruby - RubyGems.org
- Ncurses functions - PHP Manual
- nc plugin: ncurses bindings for SpiderApe
- Curses::UI - A curses based OO user interface framework
- Ada95 Binding for ncurses
- gb.ncurses - Gambas Wiki
- Eric S. Raymond, « ncurses: Portable Screen-Handling for Linux », Linux Journal, (lire en ligne)
- Thomas E. Dickey, « NCURSES - New Curses »,
Annexes
modifierArticles connexes
modifier- Curses, ancêtre de Ncurses.
- GNU Guile-Ncurses
Liens externes
modifier- (en) Site officiel ;
- (en) HOWTO — Programmation avec Ncurses ;
- (en) Writing Programs with NCURSES (« Écrire des programmes avec NCURSES »), par Eric S. Raymond et Zeyd M. Ben-Halim ;
- (en) FAQ de Ncurses, par Thomas Dickey.