GNUстеп
В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения ) |
Разработчик(и) | Разработчики GNUstep |
---|---|
Стабильная версия | сделать 2.9.2, база 1.30.0, графический интерфейс 0.31.1, назад 0.31.0 / 6 июня 2024 г |
Предварительный выпуск | в репозитории программного обеспечения GitHub |
Репозиторий | |
Написано в | Цель-C |
Операционная система | Кросс-платформенный |
Тип | Набор инструментов для виджетов |
Лицензия | Стандартная общественная лицензия GNU для приложений Меньшая стандартная общественная лицензия GNU для библиотек. |
Веб-сайт | www |
GNUstep — это бесплатная программная реализация фреймворка ( ранее OpenStep ) Objective-C Cocoa , набора инструментов для виджетов и инструментов разработки приложений для Unix-подобных операционных систем и Microsoft Windows . Это часть проекта GNU .
GNUstep представляет собой кроссплатформенную объектно-ориентированную среду разработки . Помимо интерфейса Objective-C по умолчанию , GNUstep также имеет привязки для Java , Ruby , [2] GNU Коварство и схема . [3] Разработчики 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». [4]
Архитектура программного обеспечения
[ редактировать ]Рендеринг
[ редактировать ]GNUstep содержит набор графических элементов управления , написанных на языке программирования Objective-C.
Графический интерфейс пользователя (GUI) GNUMail состоит из графических элементов управления. GNUMail должен взаимодействовать с оконной системой , например X11 или Wayland , и должен отображаться его графический интерфейс пользователя . Серверная часть GNUstep предоставляет небольшой набор функций, используемых библиотекой пользовательского интерфейса для взаимодействия с реальной оконной системой . Он также имеет механизм рендеринга , который эмулирует общие Postscript функции . Пакет gnustep-back предоставляет следующие серверные части:
- cairo — серверная часть по умолчанию, использующая библиотеку 2D-графики Cairo .
- winlib — серверная часть по умолчанию в системах Microsoft Windows. Варианты Cairo и Windows API .
- art — старый (устаревший) бэкэнд в unix-подобных системах. Использует векторную PostScript-подобную библиотеку 2D-графики Libart .
- xlib – старый (устаревший) бэкенд X11.
Парадигмы
[ редактировать ]GNUstep наследует некоторые принципы проектирования, предложенные в OPENSTEP (GNUstep предшествует Cocoa, но Cocoa основан на OPENSTEP), а также язык Objective-C .
- модель-представление-контроллер Парадигма
- Цель-действие
- Перетаскивание
- Делегация
- Пересылка сообщений (через NSInvocation)
Другие интерфейсы
[ редактировать ]Помимо интерфейса Objective-C, некоторые небольшие проекты под эгидой GNUstep реализуют другие API от Apple:
- Библиотека Boron направлена на реализацию Carbon API . Это очень неполно. [5]
- Библиотека CoreBase разработана для совместимости с Core Foundation . Он недостаточно полон, чтобы компонент Base (Foundation Kit) был просто его оболочкой. [6]
- Библиотека QuartzCore реализует API-интерфейсы Core Animation . [7] Библиотека Opal реализует Quartz 2D .
По состоянию на февраль 2020 г. [update], нет проектов, которые создают язык программирования Swift для среды GNUstep Objective-C.
Приложения
[ редактировать ]Вот несколько примеров приложений, написанных или перенесенных на GNUstep. [8]
Написано с нуля
[ редактировать ]- Адреса, менеджер адресов/ контактов
- Starry , среда рабочего стола
- GNUMail , почтовый клиент
- Библиотека базы данных GNUstep 2, Enterprise Objects Framework клон
- GNUstepWeb , сервер приложений, совместимый с WebObjects 4.x.
- Gorm — приложение для создания пользовательского интерфейса и часть инструментов разработчика GNUstep. Gorm — это эквивалент Interface Builder , который первоначально был доступен в NeXTSTEP , затем в OPENSTEP и, наконец, в Mac OS X. Он поддерживает старые файлы .nib , а также собственный формат файлов .gorm .
- GWorkspace, рабочее пространство и файловый менеджер
- Grr, программа для чтения RSS-каналов
- Oolite — клон Elite , космического симулятора с торговыми компонентами.
- ЦЕНА, приложение для обработки изображений
- ProjectCenter, Project Builder или эквивалент Xcode .
- TalkSoup, IRC- клиент
- Терминал
- Zipper — для архивирования файлов . инструмент
Портировано из NeXTSTEP, OPENSTEP или macOS.
[ редактировать ]- член законодательного собрания
- БиоКакао
- шахматы
- Сенон
- DoomEd
- ИденМатематика
- Баклажан
- Эмакс
- удачливый
- Гомоку
- NeXTGO
- ПикоПиксель
- ТекстПравить
- ВремяПн
Форки GNUstep
[ редактировать ]- Универсальная платформа Windows , которая включает пакет WinObjC, состоящий из различных частей GNUstep и собственных реализаций Microsoft , таких как Cocoa Touch API. [9]
Возможности класса
[ редактировать ]Фондовый комплект
[ редактировать ]Foundation Kit предоставляет базовые классы, такие как классы-оболочки и классы структуры данных.
Комплект приложений
[ редактировать ]Комплект приложений предоставляет классы, ориентированные на возможности графического пользовательского интерфейса .
См. также
[ редактировать ]- Darling (программное обеспечение) — уровень совместимости, основанный на GNUstep.
- GNUstep толстый пакет
- GNUstep Renaissance , платформа для XML-описания переносимых пользовательских интерфейсов GNUstep/Mac OS X.
- Столбцы Миллера — метод просмотра дерева файлов, который использует GWorkspace File Viewer.
- Список свойств , часто используемый формат файла для хранения пользовательских настроек.
- StepTalk , Платформа сценариев
- Window Maker , оконный менеджер, предназначенный для эмуляции графического интерфейса NeXT как часть более широкого проекта GNUstep.
Ссылки
[ редактировать ]- ^ Портировано с NeXTSTEP . Последние сборки, созданные с помощью libobjc2, могут использовать более новую версию, перенесенную из Mac OS X Snow Leopard.
- ^ «Инструменты разработчика GNUstep — RIGS» . www.gnustep.org . Проверено 10 апреля 2018 г.
- ^ GScheme. Архивировано 18 декабря 2005 г. в Wayback Machine.
- ^ «История GNUstep» . gnustep.made-it.com . Проверено 10 апреля 2018 г.
- ^ «gnustep/libs-boron: Бор — это атом, стоящий перед углеродом» . Гитхаб . GNUстеп. 23 марта 2019 г.
- ^ "gnustep/libs-corebase" . GNUстеп. 19 ноября 2019 г.
- ^ "gnustep/libs-quartzcore" . GNUстеп. 11 декабря 2019 г.
- ^ «Категория: Приложения — GNUstepWiki» . wiki.gnustep.org . Архивировано из оригинала 23 марта 2021 года . Проверено 10 апреля 2018 г.
- ^ «GNUstep Objective-C Runtime 2.0» . Гитхаб .
Примечание. Проект WinObjC компании Microsoft содержит дружественную версию этой библиотеки, включающую решение проблемы постепенного связывания.
Внешние ссылки
[ редактировать ]- Официальный сайт
- Проект приложения GNUstep
- Интервью 2003 года с разработчиком GNUstep Николой Перо. Архивировано 7 января 2007 г. в Wayback Machine.
- Еженедельное интервью FLOSS с Грегори Касаменто и Риккардо Моттола из GNUstep
- GNUstep для Debian , FreeBSD , MacPorts
- Среда рабочего стола NEXTSPACE, основанная на GNUstep