Введение
GNUstep — это свободная реализация фреймворков Cocoa (ранее OpenStep) Objective-C, набор инструментов для создания виджетов и средств разработки приложений для Unix-подобных операционных систем и Microsoft Windows. Это часть проекта GNU. GNUstep предоставляет кроссплатформенную объектно-ориентированную IDE. Помимо стандартного интерфейса Objective-C, GNUstep также поддерживает привязки для Java, Ruby, GNU Guile и Scheme. Разработчики GNUstep следят за некоторыми нововведениями в Apple Cocoa, чтобы сохранять совместимость. Основа пользовательского интерфейса GNUstep восходит к тем же истокам, что и у Cocoa: NeXTSTEP и OpenStep. Таким образом, GNUstep предшествовал Cocoa, который появился после того, как Apple приобрела технологии NeXT и интегрировала их в разработку оригинальной Mac OS X, в то время как GNUstep изначально был попыткой разработчиков GNU воссоздать технически сложные и удобные для программистов возможности NeXTSTEP.
GNUstep is a free software implementation of the Cocoa (formerly OpenStep) Objective C frameworks, widget toolkit, and application development tools for Unix like operating systems and Microsoft Windows. It is part of the GNU Project. GNUstep features a cross platform, object oriented IDE. Apart from the default Objective C interface, GNUstep also has bindings for Java, Ruby, GNU Guile and Scheme. The GNUstep developers track some additions to Apple's Cocoa to remain compatible. The roots of the GNUstep application interface are the same as the roots of Cocoa: NeXTSTEP and OpenStep. GNUstep thus predates Cocoa, which emerged when Apple acquired NeXT's technology and incorporated it into the development of the original Mac OS X, while GNUstep was initially an effort by GNU developers to replicate the technically ambitious NeXTSTEP's programmer friendly features.
История
GNUstep возник, когда Пол Кунц и другие сотрудники Стэнфордского линейного ускорительного центра захотели портировать HippoDraw с NeXTSTEP на другую платформу. Вместо того чтобы переписывать HippoDraw с нуля и использовать повторно только дизайн приложения, они решили переписать объектный слой NeXTSTEP, от которого зависело приложение. Это была первая версия libobjcX. Это позволило им портировать HippoDraw на Unix-системы с X Window System, не изменив ни одной строки исходного кода приложения. После публикации спецификации OpenStep в 1994 году они решили написать новый objcX, соответствующий новым API. Программное обеспечение получило название "GNUstep".
Рендаринг
GNUstep содержит набор графических элементов управления, написанных на языке программирования Objective-C. Графический пользовательский интерфейс (GUI) GNUMail состоит из элементов графического управления. GNUMail должна взаимодействовать с оконной системой, например, X11 или Wayland, и ее графический пользовательский интерфейс должен быть отрисован. Бэкэнд GNUstep предоставляет небольшой набор функций, используемых библиотекой пользовательского интерфейса для взаимодействия с фактической оконной системой. Он также включает в себя движок рендеринга, эмулирующий общие функции PostScript. Пакет gnustep-back предоставляет следующие бэкенды:
cairo – бэкенд по умолчанию, использующий библиотеку 2D-графики Cairo. winlib – бэкенд по умолчанию для систем Microsoft Windows. Варианты Cairo и Windows API. art – устаревший бэкенд для Unix-подобных систем. Использует векторную 2D-графическую библиотеку Libart, похожую на PostScript. xlib – устаревший бэкенд X11.
Приложения
Вот несколько примеров приложений, написанных для или портированных на GNUstep.
Вилки GNUstep
Универсальная платформа Windows, включающая в себя набор WinObjC, состоящий из различных компонентов GNUstep и собственных реализаций Microsoft, таких как API Cocoa Touch.
Основной комплект
Основной комплект предоставляет базовые классы, такие как классы-обертки и классы структур данных.
Комплект приложений
Комплект приложений предоставляет классы, ориентированные на функции графического пользовательского интерфейса.