Ncurses

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.5 ()[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 GNU/Linux, BSD, macOS, Microsoft Windows et 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

Curses et pcurses (d)

modifier - modifier le code - voir Wikidata (aide) Consultez la documentation du modèle

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

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.5 », (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

Articles connexes

Liens externes

  • (en) Site officielVoir et modifier les données sur Wikidata ;
  • (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.


  • icône décorative Portail des logiciels libres
  • icône décorative Portail de la programmation informatique