Введение

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 возник, когда Пол Кунц и другие сотрудники Стэнфордского линейного ускорительного центра захотели портировать 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.

Основной комплект

Основной комплект предоставляет базовые классы, такие как классы-обертки и классы структур данных.

Комплект приложений

Комплект приложений предоставляет классы, ориентированные на функции графического пользовательского интерфейса.