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.

ncurses

Menu de l'application menuconfig, basé sur ncurses
Informations
Développé par Thomas Dickey
Première version
Dernière version 6.2 ()[1]
Dépôt invisible-mirror.net/archives/ncurses
Écrit en C
Système d'exploitation 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

La 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

Ncurses 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

Ncurses 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

  1. (en) Thomas E. Dickey (d), « ncurses 6.2 », (consulté le )
  2. Curses Programming with Python - Python documentation
  3. ncurses Ruby - RubyGems.org
  4. Ncurses functions - PHP Manual
  5. nc plugin: ncurses bindings for SpiderApe
  6. Curses::UI - A curses based OO user interface framework
  7. Ada95 Binding for ncurses
  8. gb.ncurses - Gambas Wiki
  9. Eric S. Raymond, « ncurses: Portable Screen-Handling for Linux », Linux Journal, (lire en ligne)
  10. Thomas E. Dickey, « NCURSES - New Curses »,

Annexes

Articles connexes

Liens externes


  • Portail des logiciels libres
  • Portail de la programmation informatique
Cet article est issu de Wikipedia. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.