GNUstep es una implementación de software libre de los frameworks , el kit de herramientas de widgets y las herramientas de desarrollo de aplicaciones de Cocoa (anteriormente OpenStep ) para Objective-C, destinadas a sistemas operativos tipo Unix y Microsoft Windows . Forma parte del Proyecto GNU .
GNUstep cuenta con un IDE multiplataforma orientado a objetos . Además de la interfaz Objective-C predeterminada , GNUstep también tiene enlaces para Java , Ruby , [ 1 ] GNU Guile y Scheme . [ 2 ] Los desarrolladores de GNUstep realizan un seguimiento de algunas adiciones a Cocoa de Apple para mantener la compatibilidad. Las raíces de la interfaz de aplicación de GNUstep son las mismas que las raíces de Cocoa: NeXTSTEP y OpenStep . Por lo tanto, GNUstep es anterior a Cocoa, que surgió cuando Apple adquirió la tecnología de NeXT y la incorporó al desarrollo del Mac OS X original , mientras que GNUstep fue inicialmente un esfuerzo de los desarrolladores de GNU para replicar las características amigables para el programador del técnicamente ambicioso NeXTSTEP.
Historia
GNUstep comenzó cuando Paul Kunz y otros en el Centro del Acelerador Lineal de Stanford quisieron portar HippoDraw de NeXTSTEP a otra plataforma. En lugar de reescribir HippoDraw desde cero y reutilizar solo el diseño de la aplicación, decidieron reescribir la capa de objetos de NeXTSTEP de la que dependía la aplicación. Esta fue la primera versión de libobjcX . Les permitió portar HippoDraw a sistemas Unix que ejecutaban el Sistema X Window sin cambiar una sola línea de su código fuente. Después de que la especificación OpenStep se publicara en 1994, decidieron escribir una nueva versión de objcX que se ajustara a las nuevas API. El software se conocería como "GNUstep". [ 3 ]
Arquitectura de software

El Foundation Kit proporciona clases básicas como clases envoltorio y clases de estructuras de datos. El Application Kit proporciona clases orientadas a las capacidades de la interfaz gráfica de usuario . GNUstep contiene un conjunto de elementos de control gráfico escritos en el lenguaje de programación Objective-C.
La interfaz gráfica de usuario (GUI) de GNUMail se compone de elementos de control gráfico. GNUMail debe interactuar con el sistema de ventanas , por ejemplo, X11 o Wayland , y su interfaz gráfica de usuario debe renderizarse . El backend de GNUstep proporciona un pequeño conjunto de funciones que la biblioteca de interfaz de usuario utiliza para interactuar con el sistema de ventanas . También cuenta con un motor de renderizado que emula funciones comunes de Postscript . El paquete gnustep-back proporciona los siguientes backends:
- cairo – backend predeterminado que utiliza la biblioteca de gráficos 2D Cairo .
- winlib: backend predeterminado en sistemas Microsoft Windows. Variantes de la API de Cairo y Windows .
- art – backend antiguo (obsoleto) en sistemas tipo Unix. Utiliza la biblioteca de gráficos 2D basada en vectores tipo PostScript Libart .
- xlib – antiguo (obsoleto) backend de X11.
GNUstep hereda algunos principios de diseño propuestos en OPENSTEP (GNUstep es anterior a Cocoa, pero Cocoa se basa en OPENSTEP), así como el lenguaje Objective-C .
- paradigma modelo-vista-controlador
- Acción dirigida
- Arrastrar y soltar
- Delegación
- Reenvío de mensajes (a través de NSInvocation)
Además de la interfaz Objective-C, algunos proyectos pequeños bajo el paraguas de GNUstep implementan otras API de Apple:
- La biblioteca Boron pretende implementar la API de Carbon . Está muy incompleta.
- La biblioteca CoreBase está diseñada para ser compatible con Core Foundation . No es lo suficientemente completa como para que el componente Base (Foundation Kit) sea simplemente un envoltorio a su alrededor.
- La biblioteca QuartzCore implementa las API de Core Animation . La biblioteca Opal implementa Quartz 2D .
A partir de febrero de 2020 No existen proyectos que compilen el lenguaje de programación Swift utilizando el entorno Objective-C de GNUstep.
Aplicaciones
Aquí tenéis algunos ejemplos de aplicaciones escritas para GNUstep o adaptadas a este entorno.
Original
- Direcciones, un gestor de direcciones/contactos
- Étoilé, un entorno de escritorio
- GNUMail , un cliente de correo electrónico
- Biblioteca de base de datos GNUstep 2, un clon de Enterprise Objects Framework.
- GNUstepWeb , un servidor de aplicaciones compatible con WebObjects 4.x
- Gorm es una aplicación para la creación de interfaces de usuario y forma parte de las herramientas para desarrolladores de GNUstep. Gorm es el equivalente de Interface Builder , que originalmente se encontraba en NeXTSTEP , luego en OPENSTEP y finalmente en Mac OS X. Admite los antiguos archivos .nib , así como su propio formato de archivo .gorm .
- GWorkspace, un gestor de archivos y espacios de trabajo.
- Grrr, un lector de fuentes RSS
- Oolite , un clon de Elite , un juego de simulación espacial con componentes de comercio.
- PRECIO, aplicación de imágenes
- ProjectCenter, el Generador de proyectos o su equivalente en Xcode .
- TalkSoup, un cliente de IRC
- Terminal
- Zipper, una herramienta para archivar archivos
- Window Maker es un gestor de ventanas que emula la GUI de NeXTSTEP como un entorno compatible con OpenStep . [ 4 ] Fue lanzado en 1997 como una versión mejorada del diseño de AfterStep . [ 5 ]
Adaptado de NeXTSTEP, OPENSTEP o macOS
- Adún
- Biocacao
- Ajedrez
- Cenon
- Condenado
- EdenMath
- Berenjena
- Emacs
- Afortunado
- gomoku
- NeXTGO
- PikoPixel
- Editor de texto
- TimeMon
Bifurcaciones de GNUstep
- Plataforma universal de Windows , que incluye un conjunto de herramientas WinObjC compuesto por varias partes de GNUstep e implementaciones propias de Microsoft de elementos como la API Cocoa Touch . [ 6 ]
Véase también
- Darling (software) , una capa de compatibilidad que se basa en GNUstep.
- Paquete gordo de GNUstep
- Columnas de Miller , el método de exploración del árbol de archivos que utiliza el Visor de archivos de GWorkspace
- Lista de propiedades , formato de archivo frecuentemente utilizado para almacenar la configuración del usuario.
- StepTalk , marco de trabajo para la creación de scripts
Referencias
- ↑ "Herramientas para desarrolladores de GNUstep - RIGS" . www.gnustep.org . Consultado el 10 de abril de 2018 .
- ↑ GScheme Archivado el 18/12/2005 en Wayback Machine
- ↑ "Historia de GNUstep" . gnustep.made-it.com . Consultado el 10 de abril de 2018 .
- ↑ "Window Maker Live: Aspecto retro genial, rendimiento aún mejor" . LinuxInsider . 28 de agosto de 2017.
- ↑ "Los mejores gestores de ventanas de Linux de la vieja escuela que aún se mantienen vigentes" . ZDNET . 1 de octubre de 2024.
- ↑ "GNUstep Objective-C Runtime 2.0" . GitHub .
Nota: El proyecto WinObjC de Microsoft contiene una bifurcación amigable de esta biblioteca que incluye una solución alternativa para el problema de enlace incremental.
Enlaces externos
- Sitio web oficial
- Proyecto de aplicación GNUstep
- Entrevista de 2003 con el desarrollador de GNUstep, Nicola Pero. Archivada el 7 de enero de 2007 en la Wayback Machine.
- Entrevista semanal de FLOSS con Gregory Casamento y Riccardo Mottola de GNUstep.
- GNUstep
- Capas de compatibilidad
- Software libre multiplataforma
- Software libre programado en Objective-C.
- Software del Proyecto GNU
- Próximo
- Software que utiliza Cairo (gráficos)
- Kits de herramientas de widgets
- Sistema X Window