Learn Ncurses: Commencez à développer des interfaces de texte

Divulgation: Votre soutien aide à maintenir le site en marche! Nous gagnons des frais de référence pour certains des services que nous recommandons sur cette page.


Ncurses est une bibliothèque utilisée principalement dans les systèmes d’exploitation Linux et Unix qui fournit une interface visuelle textuelle pour une variété d’outils. Cela signifie qu’un programme utilisant ncurses peut afficher une interface de type GUI dans une fenêtre de terminal qui prend en charge la navigation au clavier et à la souris. En d’autres termes, il fournit des fonctions pour déplacer le curseur, créer des fenêtres, produire des couleurs, etc. sans écrire directement pour un type de terminal spécifique.

Il s’agit d’un clone de malédictions de System V Release 4.0 et il est distribué gratuitement sous la licence de logiciel libre permissive, similaire à la licence MIT.

Brève histoire de Ncurses

Ncurses a une histoire évoluée qui remonte aux malédictions. La première bibliothèque de curses a été développée à l’Université de Californie à Berkeley et elle a utilisé la base de données termcap, qui a documenté comment les différents terminaux sont contrôlés. Après le succès de la nouvelle bibliothèque, Bell Labs a publié une bibliothèque améliorée de malédictions dans leur System V Release 2 qui utilisait la base de données terminfo. Mais en raison des restrictions de licence, cette bibliothèque n’a pas été très acceptée par la communauté BSD..

Au début des années 80, Pavel Curtis a commencé à travailler sur un clone gratuit de la bibliothèque des Bell Labs appelé pcurses, qui a été maintenu tout au long de 1986. Cette nouvelle bibliothèque a été encore améliorée lorsque Zeyd Ben-Halim a repris le développement et a finalement été publiée en tant que ncurses en novembre 1993. Au cours des années suivantes, des dizaines de personnes ont contribué à ncurses, ce qui a conduit à son développement actif et à son amélioration. Depuis 1996, ncurses est entretenu par Thomas E Dickey.

Ncurses a été porté sur de nombreux systèmes et il est utilisé dans presque tous les systèmes basés sur le noyau Linux, comme la bibliothèque curses système sur OpenBSD, FreeBSD et OSX, et dans des environnements tels que Cygwin et MinGW.

Pourquoi Ncurses?

La bibliothèque ncurses fournit un cadre robuste qui permet aux programmeurs de créer des interfaces utilisateur visuellement attrayantes en mode texte. Ses fonctions permettent aux programmeurs et aux développeurs de créer des applications contenant plusieurs fenêtres, formulaires, menus et panneaux qui facilitent la sélection de commandes, la saisie de données et la gestion des fenêtres superposées et empilées.

Certains des avantages de ncurses incluent:

  • La possibilité de fournir aux utilisateurs une interface pilotée par menu
  • La possibilité d’utiliser des cases à cocher, plusieurs sous-menus et même la saisie de texte pour sélectionner les options et les commandes
  • Un environnement plus convivial pour les utilisateurs qui sont à l’aise avec les interfaces graphiques.

Exemples de programmes utilisant Ncurses

Certains programmes qui utilisent ncurses incluent:

  • GNU Midnight Commander: un gestionnaire de fichiers visuel.
  • Aptitude: une interface visuelle pour l’outil de gestion de paquets APT utilisé dans Debian et d’autres systèmes d’exploitation.
  • Lynx: le navigateur Internet à base de texte.
  • Nvi: nouveau vi, une ré-implémentation de l’éditeur vi classique distribué traditionnellement avec les systèmes BSD et Unix.
  • Emacs: un autre éditeur de texte trouvé dans de nombreux systèmes Unix.

Ressources

Les ressources ci-dessous couvrent tout sous le soleil lié aux ncurses: de l’histoire aux exemples pratiques et aux applications dans divers langages de programmation tels que C, Python et PHP.

  • Site officiel: le site officiel de ncurses avec un aperçu détaillé et des liens de téléchargement.
  • A Hacker’s Guide to Ncurses: ce guide présente la philosophie de conception, les méthodes d’implémentation et les conventions utilisées pour le codage et la documentation. Il est destiné à ceux qui souhaitent contribuer, porter ou modifier le package.
  • FAQ Ncurses: une FAQ détaillée fournie par Thomas Dickey qui est responsable de la maintenance de ncurses.
  • Ncurses: un aperçu très détaillé et approfondi de ncurses, son histoire, son développement et ses fonctionnalités.
  • Ncurses Programming How To: ce didacticiel fournit des informations complètes sur l’utilisation de ncurses et vous guide dans la rédaction d’un simple “Hello World!” programme de manipulation de formulaire plus complexe. Il ne suppose aucune expérience préalable et comprend de nombreux détails et exemples.
  • Comment installer la bibliothèque Ncurses sur un Linux: tutoriel de base et direct qui explique comment installer ncurses sur plusieurs distributions Linux.
  • Programmation de jeux en C avec la bibliothèque ncurses: tutoriel légèrement plus avancé qui vous guide à travers la création d’une simulation simple d’une balle qui rebondit d’avant en arrière sur l’écran.
  • Ncurses Terminal Screen Control: manuel complet d’utilisation de ncurses avec PHP.
  • Ncurses Library Tutorial for Beginners: ce tutoriel vous guide à travers la création d’une interface simple pour un éditeur de texte.
  • Projet de code: créer une interface utilisateur Ncurses avec Python: un autre didacticiel légèrement plus avancé qui explique comment utiliser Python et ncurses pour créer une interface utilisateur.
  • Exemples Ncurses: cette page contient plusieurs exemples de programmes et de jeux simples qui utilisent ncurses.
  • Créer un menu avec Ncurses en C: un tutoriel qui se concentre sur l’utilisation du langage de programmation C et des fonctions de base de ncurses pour créer un menu simple.

Livres

Plusieurs livres couvrent ncurses en détail et fournissent des références et des exemples utiles.

  • Guide du programmeur pour NCurses (2007) par Dan Gookin: ce livre sert de guide simple pour la bibliothèque ncurses et comprend une référence complète de plus de 175 fonctions qui sont croisées et illustrées avec des exemples.
  • Guile NCurses Library (2015) par The NCurses Team: ce livre fournit une vue d’ensemble détaillée des différents terminaux et explique comment la bibliothèque ncurses aide à simplifier la tâche de programmation pour les terminaux à cellules de caractères.
  • Termcap & Terminfo (O’Reilly Nutshell) (1988) par Mui, O’Reilly et Strang: bien que le livre ne traite pas spécifiquement des ncurses, il fournit des informations utiles sur les bases de données termcap et terminfo. Terminfo est utilisé par ncurses donc ce livre est un excellent compagnon des livres mentionnés ci-dessus car il fournit des exemples de capacités et de syntaxe pour termcap et terminfo, l’écriture et le débogage de descriptions de terminaux et l’initialisation de terminaux.

Ne jure pas, utilise Ncurses

Même si presque toutes les applications, logiciels et gadgets que nous utilisons aujourd’hui ont une interface utilisateur graphique, savoir comment travailler avec une interface utilisateur basée sur du texte a aussi ses applications et ses avantages. Il est utile si vous souhaitez travailler avec des serveurs distants ou utiliser du matériel aux capacités limitées. Les ressources ci-dessus vous mettront sur la bonne voie pour maîtriser les ncurses.

Lectures complémentaires et ressources

Nous avons plus de guides, de tutoriels et d’infographies liés au codage et au développement:

  • Mantis Hosting: découvrez quelles sociétés d’hébergement Web proposent de bonnes affaires qui incluent ce populaire programme de suivi des bogues.
  • Ubuntu Primer: apprenez tout sur l’une des distributions Linux les plus populaires.
  • Programmation orientée objet: découvrez le large éventail de langages de programmation orientés objet – certains peuvent vous surprendre.

Internet survivrait-il à la fin du monde?

Vous êtes-vous déjà demandé ce qu’une catastrophe majeure ferait sur Internet? Consultez notre infographie, Internet survivrait-il à la fin du monde? Il est possible que nous puissions tous être détruits, mais Internet.

Internet survivrait-il à la fin du monde?
Internet survivrait-il à la fin du monde?

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me

About the author

Adblock
detector