Maldiciones

API de interfaz de usuario basada en texto
Maldiciones
Desarrollador(es)Thomas E. Dickey, Juergen Pfeifer, Eric S Raymond, Alexander V Lukyanov, Philippe Blain, Sven Verdoolaege, Nicolas Boulenguez et al. [1] [2]
Lanzamiento inicial1993 ; hace 31 años ( 1993 )
Versión estable
6.5 [3] / 27 de abril de 2024 ; hace 5 meses ( 27-04-2024 )
Repositorio
  • espejo-invisible.net/archives/ncurses/
Escrito endo
Sistema operativoSistema de archivos POSIX
TipoKit de herramientas de widgets
LicenciaX11 [2]
Sitio webisla-invisible.net/ncurses/

ncurses (new curses ) es una biblioteca de programación que proporciona una interfaz de programación de aplicaciones (API) que permite escribir interfaces de usuario basadas en texto (TUI) de manera independiente de la terminal de computadora . Es un conjunto de herramientas para desarrollar software de aplicación similar a una interfaz gráfica de usuario (GUI) que se ejecuta bajo un emulador de terminal . También optimiza los cambios de pantalla para reducir la latencia que se experimenta al usar shells remotos .

ncurses es una emulación de software libre y de código abierto de System V Release 4.0 (SVr4) curses .

Existen enlaces para ncurses en una variedad de lenguajes de programación, incluidos Ada , [4] Python , [5] Gambas , [6] Ruby , [7] PHP , [8] JavaScript , [9] Perl , [10] Object REXX (ooRexx) [11] y Rust . [12]

Historia

Como nueva versión, ncurses es una emulación de software libre y de código abierto de curses de System V Release 4.0 (SVr4) , que fue una mejora con respecto a curses de 4.4 BSD, que ya no se fabricaba. [13] El estándar XSI Curses emitido por X/Open está explícitamente y estrechamente modelado en UNIX System V.

maldiciones

La primera biblioteca curses fue desarrollada en la Universidad de California en Berkeley, para un sistema operativo BSD , alrededor de 1980 para soportar Rogue , un juego de aventuras basado en texto. Originalmente usaba la biblioteca termcap , que se usaba en otros programas, como el editor vi . [13]

El éxito de la biblioteca de curses de BSD impulsó a Bell Labs a lanzar una biblioteca de curses mejorada en sus sistemas Unix System V Release 2. Esta biblioteca era más potente y en lugar de utilizar termcap, utilizaba terminfo . Sin embargo, debido a la política de AT&T con respecto a la distribución del código fuente, esta biblioteca de curses mejorada no tuvo mucha aceptación en la comunidad BSD. [13]

maldiciones

Alrededor de 1982, Pavel Curtis comenzó a trabajar en un clon gratuito de los curses de Bell Labs, llamado pcurses , que fue mantenido por varias personas hasta 1986. [14]

Maldiciones

La biblioteca pcurses fue mejorada aún más cuando Zeyd Ben-Halim se hizo cargo del esfuerzo de desarrollo a finales de 1991. [13] [14] [15] La nueva biblioteca fue lanzada como ncurses en noviembre de 1993, con la versión 1.8.1 como el primer lanzamiento importante. El trabajo posterior, hasta la versión 1.8.8 (M1995), fue dirigido por Eric S. Raymond , quien agregó las bibliotecas de formularios y menús escritas por Juergen Pfeifer. [1] Desde 1996, ha sido mantenida por Thomas E. Dickey. [14]

La mayoría de las llamadas ncurses se pueden trasladar fácilmente a la antigua versión de curses. Las implementaciones de curses de System V pueden admitir programas de curses de BSD con solo una recompilación . [16] Sin embargo, algunas áreas son problemáticas, como el manejo del cambio de tamaño de la terminal, ya que no existe una contraparte en la antigua versión de curses.

Base de datos de terminales

ncurses puede utilizar terminfo (con datos extensibles) o termcap . Otras implementaciones de curses generalmente utilizan terminfo ; una minoría utiliza termcap . Pocas (mytinfo era una excepción más antigua [17] ) utilizan ambos.

Licencia

ncurses es parte del Proyecto GNU , pero no se distribuye bajo la Licencia Pública General GNU (GPL) o la Licencia Pública General Reducida GNU (LGPL). En cambio, se distribuye bajo una licencia de software libre permisiva , es decir, la Licencia MIT . [18] Esto se debe al acuerdo realizado con la Free Software Foundation en el momento en que los desarrolladores asignaron sus derechos de autor.

Cuando se llegó al acuerdo para transferir los derechos a la FSF, había una cláusula que decía: [18]

La Fundación promete que toda distribución del Paquete, o de cualquier obra "basada en el Paquete", que tenga lugar bajo el control de la Fundación o sus agentes o cesionarios, se realizará en términos que permitan explícita y perpetuamente a cualquier persona que posea una copia de la obra a la que se aplican los términos, y que posea un conocimiento preciso de estos términos, redistribuir copias de la obra a cualquier persona en los mismos términos.

Según el mantenedor Thomas E. Dickey, esto impide renovar la licencia GPL en cualquier versión, ya que impondría restricciones a los programas que podrán vincularse a las bibliotecas. [18]

Programas que utilizan ncurses

Cientos de programas utilizan ncurses. [19] [20] Algunos, como GNU Screen y w3m , utilizan únicamente la interfaz termcap y realizan la gestión de pantalla por sí mismos. Otros, como GNU Midnight Commander y Yet another Setup Tool ( YaST ), utilizan la interfaz de programación curses.

Véase también

Referencias

  1. ^ ab "NCURSES - Preguntas frecuentes (FAQ): ¿Quién escribió NCURSES?".
  2. ^ ab "NCURSES – Licencias" . Consultado el 9 de julio de 2013 .
  3. ^ "ncurses 6.5" . Consultado el 27 de abril de 2024 .
  4. ^ "Enlace Ada95 para ncurses".
  5. ^ "Programación de Curses con Python - Documentación de Python".
  6. ^ "gb.ncurses - Wiki de Gambas".
  7. ^ "ncurses Ruby - RubyGems.org".
  8. ^ "Funciones de Ncurses - Manual de PHP". Archivado desde el original el 28 de marzo de 2021. Consultado el 4 de febrero de 2020 .
  9. ^ "complemento nc: enlaces ncurses para SpiderApe".
  10. ^ "Curses::UI - Un marco de interfaz de usuario orientado a objetos basado en curses".
  11. ^ Documentación de ooRexx 5.0.0: Referencia de la biblioteca de clases nCurses (PDF) . Asociación del lenguaje Rexx. 2022.
  12. ^ "Enlaces de Rust para ncurses".
  13. ^ abcd Raymond, Eric S. (septiembre de 1995). "ncurses: manejo de pantalla portátil para Linux". Linux Journal .
  14. ^ abc Dickey, Thomas E. (diciembre de 1996). "NCURSES - Nuevas maldiciones".
  15. ^ El archivo README en ncurses 1.8.1 indica "v0.1 31 de julio de 1992" y "v1.8.1 5 de noviembre de 1993", lo que coincide con el archivo NEWS (registro de cambios)
  16. ^ "Guía para hackers sobre los aspectos internos de Ncurses".
  17. ^ Weinstein, Sydney S. (abril de 1993). "On the Networks". C/C++ Users Journal. Archivado desde el original el 11 de agosto de 2014. Consultado el 15 de septiembre de 2017 .
  18. ^ abc "NCURSES - Preguntas frecuentes (FAQ): ¿Está bajo licencia GPL?".
  19. ^ "Resultados de la búsqueda: +ncurses en freshmeat.net". Archivado desde el original el 18 de febrero de 2012. Consultado el 10 de mayo de 2013 .
  20. ^ "Proyectos etiquetados 'ncurses'". ohloh.
  • Sitio web oficial
Obtenido de "https://es.wikipedia.org/w/index.php?title=Ncurses&oldid=1244799093"