Home Map Index Search News Archives Links About LF
[Top bar]
[Bottom bar]
эта страница доступна на следующих языках: English  Castellano  Deutsch  Francais  Italiano  Nederlands  Russian  Turkce  

[Photo of the Author]
автор Georges Tarbouriech

Об авторе:

Georges давно использует Unix (коммерческие и бесплатные). Как поклонник NeXT, он очень интересуется бесплатными проектами, использующими внешний вид и не только его этой великой ОС.


Содержание:

GNUstep - OpenStep с открытым кодом

Резюме:

Более 10 лет назад появился невероятный компьютер с невероятной ОС. Его название - NeXT, а ОС соответственно - NeXTStep. До этого ничего подобного мы не видели. ОС была на основе BSD 4.2, позже на 4.3 с очень компактным ядром. Вместе с ней появилась первая графическая, объектно-ориентированная среда разработчика - Interface Builder (спасибо за это Jean-Marie Hullot и Bertrand Serlet). Рассматривая коммерческую часть этого проекта можно сказать, что успех не был достигнут. Позже у NeXT появилась идея портировать framework на другие ОС, например Sun. Этот API назвали OpenStep. Параллельно был запущен проект GNUstep, http://www.gnustep.org, для разработки бесплатного OpenStep. В заметке рассматривается эта работа, несмотря на то, что она еще не закончена.



 

Начинаем...

Для использования GNUstep понадобиться еще одно прекрасное бесплатное приложение - Window Maker. Это менеджер окон, схожий с NeXT. Если вы до сих пор не встречали его, можно посмотреть здесь . В момент написания заметки самая свежая версия была 0.64.0.
Это приложение является частью проекта GNUstep и доступно на http://www.windowmaker.org.
Следует добавить, что Window Maker поддерживается почти для всех Unix, без разницы коммерческих или бесплатных - большинство дистрибутивов Linux, NetBSD, FreeBSD, OpenBSD - стабильность работы зависит от используемой вами ОС. Среди коммерческих ОС это Solaris, Irix...
Если ваш экран выглядит подобно NeXTStep, посетите сайт GNUstep.
Что еще нужно для работы? Конечно объектный компилятор С (не забывайте, что это объектно-ориетированная среда) версии gcc 2.8 или новее, также рекомендуется libobjc. Кроме инструментов для компиляции, необходимо кое-что из GNUstep - базовая библиотека, графическая библиотека, кое-что из Х11 (xgps или xdps) и т.д. На самом деле много можно установить, но окончательный выбор за вами : просмотрите список и сделайте свой выбор. Например вы можете взять Gorm (реализация Interface Builder) и примеры программ.

 

Инсталлируем...

Необходимо скомпилировать все, что вы загрузили! Для начала прочитайте внимательно READMEs и INSTALLs. Также рекомендую прочитать GNUstep HOWTO.
После компиляции настройте переменные окружения и программы для запуска при загрузке системы (например gdnc).
Как мы уже говорили ранее у вас есть выбор между X и dps (бесплатный Display PostScript), последний более эффективен, но менее используем в отличие от X.
При определении переменных окружения будьте внимательны с path'ми (зависят от используемой ОС). И наконец, необходимо определить переменную GNUSTEP_SYSTEM_ROOT и path к скриптам и программам.
Закончив настройку, можно уже повозиться с GNUstep.

 

Примеры

На сайте GNUstep вы найдете множество примеров. Изучение их - лучший способ познакомиться с GNUstep, если вы не знакомы с NeXTStep или OpenStep. Большинство из них решают задачу объяснения философии данной среды. Изучение кода даст немало сведений об объектном С. Для знакомых с С - объектный С достаточно прост в изучении и в любом случае легче С++ (мое личное мнение).
Среди рассматриваемых примеров - наиболее привлекательный font panel. Он действительно выглядит как оригинальный вариант. Для сравнения мы будем демонстрировть screen shots и GNUstep и NeXTStep.

fontp.jpg fontpn.jpg

Еще один интересный пример - Edit app. Он не полностью функционален, но близок к оригиналу.
Один из основных обучающих примеров - GSTest, объясняет работу окон, кнопок, scrollbar'ов... Все в одном примере! Взгляните на код - это лучше объяснения.
Конечно это не значит, что остальные примеры недостойны внимания. Они еще как достойны!
Автором многих приложений является Nicola Pero, который без сомнения проделал огромную работу.
Еще одно приложение от Nicola называется Finger. Это gui для finger, ping, traceroute.

finger.jpg

Можно продолжать и продолжать, но оставим удовольствие открытия читателю.

 

Тяжелая артиллерия

Настоящий переворот произвело приложение Interface Builder, представленное NeXTStep. Из названия ясно, что речь идет об инструменте для создания gui для ваших приложений. Не забывайте, что речь идет о конце 80-х : просто невероятно!
Почему мы говорим об этом как о перевороте - все очень просто - используя данное приложение можно было создать окно со всеми необходимыми элементами быстрее, чем за 5 минут! Создание этого окна с меню, кнопками, бегунками осуществлялось перенесением элементов из панели. Далее можно было связать эти элементы с другими окнами, меню и т.д. Автоматически создавался минимально необходимый код, который можно было усовершенствовать. И конечно же, один раз созданные объекты становились доступными для использования снова и снова.
Звучит невероятно для того времени!
Все крупные производители софта принялись за создание чего-то подобного : но по моему мнению они так и не достигли уровня оригинала.
А теперь подобное приложение предлагается бесплатно - Gorm (GNUstep Graphics Object Relationship Modeler), автором которого является Richard Frith-Macdonald.
Это приложение доступно с сайта GNUstep в форме CVS. В момент написания заметки была доступна версия 0.1 в достаточно рабочем состоянии несмотря на отсутствие многих функций. Для знакомства с работой и возможностями Interface Builder это подходящий вариант.
Вот простой пример в сравнении с аналогом от NeXTStep.

gorm.jpg ib.jpg

Как мы уже сказали это приложение, как и его прототип Interface Builder являются инструментами для создания графической части приложения. Конечно, как и для всякого приложения, необходимо наполнить его кодом и откомпилировать.
И здесь появляется еще пара приложений - Project Builder для NeXTStep и ProjectCenter соответственно для GNUstep - работа Philippe C.D Robert, текущая версия 0.2. Еще раз - опять рабочие приложения, несмотря на номер версии. Его задача - осуществлять управление проектом подобно Project Builder.
Вот как оно выглядит рядом со своим "oтцом".

prcent.jpg pb.jpg

Использование этих приложений упрощается если вы знакомы с NeXTStep или OpenStep. В противном случае придется сначала разобраться с философией работы с ними. Конечно как всегда существует множество документации, которую рекомендуется тщательно изучить. Но как только вы разберетесь с использованием их - вы не сможете без них работать! Вас предупредили.
Перечислим еще несколько приложений доступных на http://www.nice.ch/~phip/softcorner.html, наряду со многими другими - это GWorkspace или GSBench, GNU 3DKit...

 

Утилиты

В этой части рассмотрим инструменты для портирования приложений из OpenStep в GNUstep. Но они предназначены не только для этого (например также для портирования приложений из Mac OS X), и это очень важно - позже немного подробнее!
Первая - OpenStep2GNUConverter, для переноса PBProject (Project Builder) в GNUstep Makefile. Например для компиляции проекта OpenStep на вашем Linux.
Для компиляции нужна еще одна утилита - nfmake.
Утилита nib2gmodel для переноса nib file в gmodel.
И наконец, вы можете использовать gstep-db - библиотека для баз данных и даже Oracle adaptor.
NeXTStep и OpenStep предоставляют adaptors для Sybase и Oracle, в качестве интерфейса для осуществления запросов к базам данных. GNUstep предлагает подобное бесплатно (для NeXTStep или OpenStep необходим дорогостоящий developer kit, но есть альтернатива - Enterprise Object Foundation со множеством примеров).
Все утилиты доступны на сайте GNUstep.
К сожалению у меня не было возможности протестировать все это - я только-только получил старую рабочую станцию NeXT. Но я доверяю GNU вот уже 15 лет и нет причины, которая могла бы изменить это! В любом случае я все это протестирую в течение нескольких месяцев.

 

Документация

Если вы собираетесь поработать с этими приложениями - масса документации вам в помощь. Простота использования - это не байка, но немного знаний о том как это работает не повредит.
Много ссылок на сайте GNUstep. Некоторые из них заслуживают особого внимания.
Документация GNUstep - на http://www.gnustep.org/resources/documentation.html, также книга по Objective C, инструкции по установке, FAQ, информация о GNUstep library...
Рекомендую руководство Nicola's http://www.gnustep.it/nicola/Tutorials.
Еще одно место - раздел ресурсов - ссылки к заметкам, сайтам разработчиков...
Не менее интересен сайт http://www.gnustep.net/.
Таким образом можно найти все необходимое для начала работы с GNUstep.

 

Что дальше ?

Странная история NeXT продолжается, будем надеяться на успех под названием Mac OS X. Что вы думаете об ОС появившейся 10 лет назад и начинающей новый виток своего развития сейчас?
Но что это значит для нас? Возможно большое количество прекрасных приложений, так как существующие легко перекомпилировать и не забывайте, что и Mac OS X и NeXTStep являются Unix системами. Это означает действительно огромное коичество потенциально доступных приложений, также как и для бесплатных Unix. Следовательно GNUstep - именно то, что вам нужно...
Наконец мы просто будем иметь выбор среди приложений. Но к сожалению, наряду с положительными моментами существуют и отрицательные.

Положительные моменты

Рассмотрим на следующем примере : в зависимости от используемой ОС сегодня нет особого выбора среди веб браузеров. Это или Netscrape (и его производные) или Exploder - две газовые фабрики, проблемы с безопасностью и т.д. Mac OS X предлагает OmniWeb - действительно прекрасный браузер. Использование его под NeXTStep - одно удовольствие, несмотря на довольно старую версию.
Это отт тип браузера о котором вы можете только мечтать сегодня используя решения Unix или M$. Самые "худые" браузеры сегодня доступны в так называемых альтернативных ОС : NetPositive для BeOS или AWeb для AmigaOS. Opera кажется довольно привлекательной, но я до сих пор не уверен (мое личное мнение). К чему я веду - Mac OS X и соответственно GNUstep могут предложить нам "новые" приложения, лучшие, чем те, которые мы сегодня используем. Преимущества их мы ощутили примерно 10 лет назад... когда появился NeXTStep !
Однозначно это касается не только браузеров.
Обратите внимание на http://www.omnigroup.com/.
Основной момент относительно GNUstep и Mac OS X состоит в том, что X-Windows используется для GNUstep, но не под Mac OS X. Этот момент кстати был причиной недовольства относительно NeXTStep. Вот поэтому так важнен GNUstep : приложения работают под Х. Возможно это один из ключевых моментов этого проекта, люди делают действительно великое дело.

Отрицательные моменты

Следует опасаться прихода Exploder и некоторых других приложений того же производителя в Mac OS X. Немного пугает! Это коварное вступление Redmond army в мир беслатных Unix. Конечно, в данном случае бесплатное не означает подарок, если уж мы говорим о M$, но... Если хотите посмотреть какие приложения находятся в стадии разработки для Mac OS X посмотрите на http://www.apple.com/macosx/applications/.
Можно сказать, что это пессимистический стиль мышления : поживем увидим !

Не будем забывать, что GNUstep предназначается разработчикам. Со временем приложения можно будет создавать также легко, как и с помощью NeXTStep. GNUstep - это IDE (Integrated Development Environment). Основная идея состоит в простом портировании приложений, например для Mac OS X.
Не будем забывать о Apple's open source (http://www.opensource.apple.com//).
Можно было бы продолжать рассказывать о GNUstep, но не в этой заметке - ее целью было заинтересовать вас этим проектом и, почему бы нет, поучаствовать в нем.

 

And the band plays on

Одно из главных удовольствий, связанных с бесплатным программным обеспечением - попытка "исправления" крупных коммерческих ошибок. NeXTStep для меня действительно означала переворот. Я счастливый обладатель рабочей станции 10 летней давности, но не подумайте, что она покрыта пылью - я использую ее практически каждый день, несмотря на 68040/25Mhz CPU. К счастью (или сожалению) многие думают также. Спасибо GNUstep team и Window Maker team за действительно прекрасную работу.
Невероятно, но факт - многие попытались "клонировать" NeXTStep и преуспели там, где ничего не получилось у оригинала. Еще несколько слов о Redmond Kingdom : вам нигде не встречались W95 окошки? Посмотрите на NeXTStep screen shots выше. NeXTStep появился в США в 1987г. и примерно в 1990г. в Европе. Как вы помните M$ представила свой вариант пятью годами позже. Летающие листики между двумя папками, придуманные в окрестностях Сиэттла, появились в NeXTStep 2.1 примерно в 1991г...
Они, в Redmond, не копируют ! Они поступили намного лучше : просто "купили" людей из NeXT... Предполагаю, что за очень большие деньги. Ну ничего, правда не очень красиво, не так ли?
NeXTStep не оставляет людей равнодушными.
GNU - главное место бесплатного программного обеспечения, причем заслуженно. Весь мир в долгу перед GNU - любая ОС только выигрывает от использования этих приложений. Компиляторы GNU - лучшие компиляторы, и это можно сказать о многих других инструментах. Более того, проекты GNU очень часто (если не всегда) настолько же хороши, насколько и их приложения. GNUstep - один из примеров. Кстати и у NeXTStep есть каталог GNU...
Попробуйте GNUstep и вы полюбите его! Более того - вы не сможете без него работать.
Мы живем в великие времена!  

Страница отзывов

У каждой заметки есть страница отзывов. На этой странице вы можете оставить свой комментарий или просмотреть комментарии других читателей.
 talkback page 

Webpages maintained by the LinuxFocus Editor team
© Georges Tarbouriech, FDL
LinuxFocus.org

Click here to report a fault or send a comment to LinuxFocus
Translation information:
en -> -- Georges Tarbouriech
en -> ru Kirill Poukhliakov

2001-03-01, generated by lfparser version 2.8