GNUstep

Инструментарий виджетов с открытым исходным кодом и инструменты разработки приложений
GNUstep
Разработчик(и)Разработчики GNUstep
Стабильный релиз
make 2.9.2, base 1.30.0, gui 0.31.1, back 0.31.0 / 6 июня 2024 г. ; 7 месяцев назад ( 2024-06-06 )
Предварительный релиз
в репозитории программного обеспечения GitHub
Репозиторий
  • github.com/gnustep
Написано вObjective-C
Операционная системаКроссплатформенный
ТипНабор инструментов для виджетов
ЛицензияGNU General Public License для приложений.
GNU Lesser General Public License для библиотек.
Веб-сайтgnustep.org

GNUstep — это свободное программное обеспечение, реализующее фреймворки Cocoa (ранее OpenStep ) Objective-C , набор виджетов и инструменты разработки приложений для Unix-подобных операционных систем и Microsoft Windows . Является частью проекта GNU .

GNUstep представляет собой кроссплатформенную объектно-ориентированную IDE . Помимо интерфейса Objective-C по умолчанию , GNUstep также имеет привязки для Java , Ruby , [1] GNU Guile и Scheme . [2] Разработчики GNUstep отслеживают некоторые дополнения к Cocoa от Apple , чтобы оставаться совместимыми. Корни интерфейса приложений GNUstep те же, что и корни Cocoa: NeXTSTEP и OpenStep . Таким образом, GNUstep предшествовал Cocoa, который появился, когда Apple приобрела технологию NeXT и включила ее в разработку оригинальной Mac OS X , в то время как GNUstep изначально был попыткой разработчиков GNU воспроизвести технически амбициозные удобные для программистов функции NeXTSTEP.

История

GNUstep начался, когда Пол Кунц и другие в Stanford Linear Accelerator Center захотели перенести HippoDraw из NeXTSTEP на другую платформу. Вместо того, чтобы переписывать HippoDraw с нуля и повторно использовать только дизайн приложения, они решили переписать слой объектов NeXTSTEP , от которого зависело приложение. Это была первая версия libobjcX . Она позволила им перенести HippoDraw на системы Unix, работающие под управлением X Window System, не изменяя ни единой строки исходного кода приложения. После того, как спецификация OpenStep была опубликована в 1994 году, они решили написать новый objcX , который бы соответствовал новым API. Программное обеспечение стало известно как «GNUstep». [3]

Архитектура программного обеспечения

Программные компоненты рабочего стола Linux включают сервер отображения , библиотеки элементов управления графикой и графические оболочки .

Foundation Kit предоставляет базовые классы, такие как классы-оболочки и классы структур данных. Application Kit предоставляет классы, ориентированные на возможности графического пользовательского интерфейса . GNUstep содержит набор графических элементов управления , написанных на языке программирования Objective-C.

Графический пользовательский интерфейс (GUI) GNUMail состоит из элементов управления графикой. GNUMail должен взаимодействовать с оконной системой , например X11 или Wayland , и его графический пользовательский интерфейс должен быть визуализирован . Бэкэнд GNUstep предоставляет небольшой набор функций, используемых библиотекой пользовательского интерфейса для взаимодействия с фактической оконной системой . Он также имеет механизм визуализации , который эмулирует общие функции Postscript . Пакет gnustep-back предоставляет следующие бэкэнды:

  • cairo – бэкэнд по умолчанию, использующий библиотеку 2D-графики Cairo .
  • winlib – бэкэнд по умолчанию в системах Microsoft Windows. Варианты API Cairo и Windows .
  • art – старый (устаревший) бэкенд на unix-подобных системах. Использует векторную PostScript-подобную библиотеку 2D-графики Libart .
  • xlib – старый (устаревший) бэкэнд X11.

GNUstep наследует некоторые принципы проектирования, предложенные в OPENSTEP (GNUstep появился раньше Cocoa, но Cocoa основан на OPENSTEP), а также язык Objective-C .

Помимо интерфейса Objective-C, некоторые небольшие проекты под эгидой GNUstep реализуют другие API от Apple:

  • Библиотека Boron нацелена на реализацию API Carbon . Она очень неполна.
  • Библиотека CoreBase разработана для совместимости с Core Foundation . Она недостаточно полна, чтобы компонент Base (Foundation Kit) был просто оберткой вокруг нее.
  • Библиотека QuartzCore реализует API Core Animation . Библиотека Opal реализует Quartz 2D .

По состоянию на февраль 2020 года [обновлять]не существует проектов, разрабатывающих язык программирования Swift для среды GNUstep Objective-C.

Приложения

Вот несколько примеров приложений, написанных для GNUstep или портированных на него.

Оригинал

Портировано из NeXTSTEP, OPENSTEP или macOS

Форки GNUstep

Смотрите также

Ссылки

  1. ^ "Инструменты разработчика GNUstep - RIGS". www.gnustep.org . Получено 10 апреля 2018 г. .
  2. ^ GScheme Архивировано 18 декабря 2005 г. на Wayback Machine
  3. ^ "История GNUstep". gnustep.made-it.com . Получено 10 апреля 2018 г. .
  4. ^ "Window Maker Live: крутой ретро-стиль, еще более крутая производительность". LinuxInsider . 28 августа 2017 г.
  5. ^ «Лучшие оконные менеджеры Linux старой школы, которые все еще актуальны». ZDNET . 1 октября 2024 г.
  6. ^ "GNUstep Objective-C Runtime 2.0". GitHub . Примечание: проект Microsoft WinObjC содержит дружественную версию этой библиотеки, которая включает обходной путь для проблемы инкрементального связывания.
  • Официальный сайт
  • Проект приложения GNUstep
  • Интервью 2003 года с разработчиком GNUstep Николой Перо. Архивировано 07.01.2007 на Wayback Machine.
  • Еженедельное интервью FLOSS с Грегори Касаменто и Риккардо Моттолой из GNUstep
Взято с "https://en.wikipedia.org/w/index.php?title=GNUstep&oldid=1262357260"