ncurses

Un article de Wikipédia, l'encyclopédie libre.

ncurses

Description de cette image, également commentée ci-après
Menu de l'application menuconfig, basé sur ncurses
Informations
Développé par Thomas Dickey
Première version Voir et modifier les données sur Wikidata
Dernière version 6.2 ()[1]Voir et modifier les données sur Wikidata
Dépôt invisible-mirror.net/archives/ncursesVoir et modifier les données sur Wikidata
Écrit en CVoir et modifier les données sur Wikidata
Système d'exploitation Type UnixVoir et modifier les données sur Wikidata
Environnement POSIX
Type affichage en mode texte
Licence X11
Site web invisible-island.net/ncursesVoir et modifier les données sur Wikidata

Chronologie des versions

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.

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[modifier | modifier le code]

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[modifier | modifier le code]

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[modifier | modifier le code]

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[modifier | modifier le code]

  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. a et b Eric S. Raymond, « ncurses: Portable Screen-Handling for Linux », Linux Journal,‎ (lire en ligne)
  10. Thomas E. Dickey, « NCURSES - New Curses »,

Annexes[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]