`

СПЕЦИАЛЬНЫЕ
ПАРТНЕРЫ
ПРОЕКТА

Архив номеров

Как изменилось финансирование ИТ-направления в вашей организации?

Best CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

Бутылка без джинна (Oberon и нелетние мысли)

0 
 

"...Жило беспечальное юное поколение, которое улыбнулось лету, морю и солнцу -- и выбрало "Пепси"... эти дети, лежа летом на морском берегу, подолгу глядели на безоблачный синий горизонт, пили теплую пепси-колу, разлитую в стеклянные бутылки в городе Новороссийске, и мечтали...". В. Пелевин

Искривление альтернативы

...Вот и конец пути -- бултых!
БГ

Бутылка без джинна (Oberon и нелетние мысли)
Внешний вид графического интерфейса Bluebottle отвечает взыскательным требованиям современной пользовательской аудитории -- альфа-прозрачность, привычные примитивы, виртуальные экраны

В незапамятные времена, также сжигая кожу под загоняющим в тень крымским солнцем, мы внимали воспроизводимым заезженным магнитофоном "Электроника 302" искаженным словам "Корнелия Шнапса", разливая по граненым стаканам (о существовании пластиковых одноразовых тогда еще не было доподлинно известно, имелось только какое-то неявное подозрение) "сухарик" из канистры. Ни о какой "альтернативности" мы тогда не думали -- даже само это понятие было не в чести. Естественно, подразумевалось, что "ветры яростных атак" -- это одно, а "Аквариум" -- совсем другое, но как-то называть такое отличие никому в голову не приходило, а тем более -- слишком умным словом "альтернатива"...

Прошло почти двадцать лет, "яростность атак" мягко трансформировалась в "ты целуй меня везде" (что, впрочем, отличается только по форме, но никак не по "яростности"), неунывающий Корнелий, похоже, давно дошел до конца пути (бултых!), на смену ему в кроваво-красной полиграфии пришла "Сестра Хаос". На этом временном отрезке слово "альтернатива" стало общеупотребимым, модным и, наконец, символическим. И, также, как и в случае с новомодно-детективной историей трансформации "Шнапс-Хаос" (так и видится суперобложка бестселлера "Трансвестит Шнапс"), "альтернатива", похоже, претерпела те же изменения и тоже без всякого хирургического вмешательства. Просто когда-то прозвучало совсем неслышное "бултых!", и "альтернатива" стала в новоязе синонимом "халявы" -- "целуй меня везде", при этом лучше всего -- бесплатно или, на худой конец, -- подешевле. Утихли последние отголоски прежней, если можно так сказать, "внутренней закомплексованной альтернативности", приобщенность к которой для совершения чуть ли не любого действия непременно требовала от своих приверженцев "восемь суток на тракторе по снежной степи" хотя бы потому, что "красота никогда не давалась легко".

Пока мы только поиграли в слова -- весьма далекие, на первый взгляд, от свойственных компьютерному журналу. Но вспомним, что в любой, даже самой убогой, программе есть частица того, что неопределенно именуется "искусством", и аналогии покажутся не столь далекими, и все сказанное -- вовсе не мрачным, а даже веселым.

Автономные программные агенты (АПА, software agents) -- еще один яркий пример неопределенности, царящей в мире software engineering. Интеллектуальные абстрактные конструкции, похоже, не подчиняются общепринятым принципам инженерии, из-за чего обилие толкований терминов, кажущихся общепринятыми, поражает. Для термина АПА этих толкований даже больше, чем существующих реализаций. Так, известный специалист по АПА Санкар Вирхагрисваран определяет термин "агент" как "две ортогональные концепции -- принципиальную способность к автономной работе и ориентированную на конкретную прикладную область ограниченную функциональность". Исследователи Рассел и Норвиг определяют АПА как "нечто, взаимодействующее с окружением с помощью сенсоров и влияющее на него посредством актуаторов (effectors)". В рамках проекта "IBM Agent" под АПА понимаются "программно реализованные сущности, выполняющие конечное множество операций с некоторой степенью автономности". И наконец, самое веселое определение АПА приводит FAQ (Frequently Asked Questions, часто задаваемые вопросы) по программным агентам -- "в этом документе нет определения понятия АПА"...


Bluebottle

Я раньше думал,
что важно, в чем суть,
Но, чтобы выжить,
важнее мой вид.
БГ

Патологическое "умение" выбирать удачные названия для своих творений -- отличительная черта программистов. Создатели операционной системы Inferno, с весьма специфическим юмором позаимствовавшие инфернальную терминологию у Данте Алигьери, по сравнению с авторами нового названия проекта Active Oberon кажутся просто забавными юмористами, мило шутящими над совершенно обыденными вещами, -- этакий вариант невинного шоу "для семейного просмотра". Судите сами, bluebottle в современном английском языке имеет два значения: василек (цветок) и... Calliphora erythrocephala -- трупная муха. Час от часу не легче -- в устаревшем сленге 70-х bluebottle использовалось как пренебрежительное название полицейского ("синий мундир"). И наконец, сложнообразованное слово bluebottle, разбитое на составные части, естественно, обозначает не то "синюю", не то "грустную" бутылку. Столь "привлекательное" название и вынудило автора статьи отвергнуть и энтомологическое, и ботаническое, и жаргонное значения, что наконец объясняет странное ее название. Впрочем, в контексте и малоприятный энтомологический вариант свою роль все же сыграет...

Бутылка без джинна (Oberon и нелетние мысли)
За внешней привлекательностью GUI Bluebottle скрывается весьма эффектная программная реализация, основанная на самых новомодных технологиях -- XML-описаниях параметров отображения и сетецентрической архитектуре, основанной на "агентах"

Вот и настало время предъявить читателю предмет нашего обсуждения во всей красе. Bluebottle -- достаточно совершенная операционная система, основанная на технологиях отработанной ОС Oberon (о ней рассказано в статье трехлетней давности "Oberon -- "космос" Никласа Вирта").

Надо сказать, что прежние симпатии к этой экзотичной системе не утратили силы, и капризная Bluebottle регулярно загружается на моем компьютере, но в этот раз, как уже понятно, читателю не придется выслушивать оду "еще одной хорошей операционной системе". Восторженного обсуждения, как и намеренного "затаптывания", не будет. Мы попробуем поговорить не столько о достоинствах или недостатках Bluebottle, сколько о симптоматичности судьбы данной разработки. Это действительно ВАЖНЫЙ предмет для разговора -- куда более важный во времена усиленного поиска "альтернативы", чем технические нюансы. Кроме того, три года назад (достаточный период времени по меркам компьютинга) был оставлен фактически без ответа вопрос "Есть ли будущее у Oberon?", и сегодня уже можно ответить не только на него, но и на более обобщенный -- "Есть ли будущее у закомплексованной альтернативности?".

Итак, Bluebottle. Принципиальная новизна идей, на которых основана эта ОС, заключается... в отсутствии новых идей. Собственно, в случае с Bluebottle вообще интересна не новизна как таковая (много ли принципиально новых системных решений воплощается в сегодняшних ОС?), а тщательность соблюдения принципа эволюционного развития системы. Ее можно проиллюстрировать на примере главного системного компонента всех ОС, разработанных под руководством Н. Вирта, -- языка программирования, ведь, в отличие от большинства универсальных операционных систем, Oberon и ее расширенная версия Bluebottle являются представителями небольшого класса гибридов "ОС-язык".

Не вдаваясь в детали, история языковой эволюции, трансформировавшей раннее детище Вирта -- базовый "учебный" Pascal, в современный язык параллельного программирования (concurrent programming), сегодня насчитывает три этапа. На первом Pascal обрел раздельно компилируемые модули (по сей день даже огромные программы на стандартном Pascal представляют собой один файл с исходным текстом), зачаточную поддержку абстрактных типов данных и новое название -- Modula. На втором этапе наступило время "очищения" и дальнейшего совершенствования (обозначаемое одним емким словом refinement) -- из спецификаций языка были удалены избыточные конструкции и добавлен механизм расширения типов, дающий возможность использовать приемы объектно-ориентированного программирования при минимальном изменении синтаксиса и семантики языка. Соответственно, трансформировалось и название -- из Modula в Oberon. И наконец, последний на сегодняшний день этап дополнил Oberon рядом синтаксических конструкций, упрощающих написание параллельных программ, и существенными косметическими изменениями. "Новый" язык получил название Active Oberon. Продолжительность этого эволюционного процесса впечатляет -- она составляет 30 лет! При этом основные идеи и базовый синтаксис языков на протяжении всего периода времени оставались неизменными.

Такой краткий рассказ был бы неполным без упоминания одной забавной детали, -- того, как требования реальности в ходе эволюции вынудили создателей Active Oberon к "ренегатству" -- предательству светлых идей "беспорочного языка программирования". Именно из-за "несовершенной реальности" в Oberon со временем и материализовался один из самых опасных призраков "презренного C" -- указатель на объект любого типа (аналог void*), и появились прежде казавшиеся избыточными тип данных "объект", аналоги метода-конструктора и виртуальной функции... Короче говоря, под неумолимым давлением требований реальности Active Oberon постепенно трансформировался в некоторое усеченное подмножество весьма обычного объектно-ориентированного языка программирования, каких и без того много. Главное же отличие Active Oberon от "прочих" языков заключается в первой части названия и ключевом слове-спецификаторе ACTIVE. Оно указывает, что специфицированный им объект является отдельной исполняемой сущностью -- процессом, инкапсулирующим данные объекта и методы, реализованные потоками (нитями, threads). По сути, в этой особенности тоже нет ничего исключительного -- например, знаменитый язык Ada давно обладает схожей функциональностью, причем независимой (или не слишком зависимой) от операционной среды. Даже если придерживаться более "модного" толкования особенностей подобной архитектуры в терминах "автономных программных агентов" (АПА), отыскать что-либо шокирующе новое в Bluebottle трудно -- существует масса инструментальных средств, позволяющих реализовывать АПА практически на любых языках программирования в любых операционных средах.

Трансформация основного инструментального средства в Bluebottle не привела к невозможности использования старых, не-Active, разработок -- на сегодняшний день Bluebottle в пределах одной системы фактически интегрирует стабильную версию классической Native Oberon (независимой ОС Oberon) с Active-расширениями. К последним, в первую очередь, относятся новые пользовательские подсистемы -- оконный менеджер, примитивы графического интерфейса, минимальный набор утилит. И если в Native Oberon элементы пользовательского интерфейса визуально неказисты, Bluebottle предстает перед пользователем в весьма эффектном "наряде" -- изменяемые темы, альфа-прозрачность, виртуальные экраны.

За всей этой "красотой" скрывается уже ставшее привычным овеществление главной идеи Oberon: операционная система на деле является средой времени исполнения языка программирования, что обеспечивает простоту и компактность программ. О двух последних характеристиках следует сказать особо -- размер АПА runtime Oberon, в котором "упрятаны" механизмы редактора связей (linker) и сборщик мусора, ответственные за полноценную реализацию потокового программирования и живучести (persistence) подсистемы, составляет чуть более... 50 KB кода для процессоров семейства x86. АПА стека TCP/IP также "умещается" в скромной полусотне килобайт. Код агента дисплейной подсистемы вообще смехотворно мал -- 15 KB. Цифры впечатляющие...

Впрочем, и внутреннее изящество, и внешняя красота в случае с Bluebottle, как уже говорилось ранее, -- не главное. Сегодняшнее состояние проекта, несмотря на открытость исходных текстов, ожидаемое изменение лицензии на более либеральную, бесплатную доступность системы и ее работоспособность, практически ничем не отличается от ситуации трехлетней давности. Фактически замкнутая в пределах одного академического института (ETH) разработка на сегодняшний день никакого влияния на окружающий мир не оказывает, а если судить по состоянию единственной конференции comp.lang.oberon и архивов почтовых рассылок, активность "сторонних" (по отношению к ETH) участников проекта равна нулю.

Если проанализировать факты академической изоляции и вялого развития проекта Bluebottle на фоне сложившейся в мире ситуации с поисками "альтернативы", можно получить ряд весьма интересных несоответствий. С одной стороны, во многих странах уже на государственном уровне ищутся способы "послабления" ужесточившейся лицензионной политики основного поставщика системного ПО для ПК -- компании Microsoft. С другой стороны, не только Oberon со всем его изяществом и красотой, но и ряд других перспективных проектов открытых, бесплатных и компактных операционных систем (например, AtheOS) находятся в стадии "вялотекущего изолированного развития".


Недетская болезнь "альтернативы"

Бутылка без джинна (Oberon и нелетние мысли)
Перечень приложений для Bluebottle крайне ограничен, и, учитывая "привередливость" системы к аппаратным средствам, в современном состоянии она не пригодна для повседневного использования непрофессионалом. Пока это интересная хобби-платформа для программиста, имеющего достаточно свободного времени...

Мы подошли к главному моменту нашего разговора, в котором роль Bluebottle сугубо иллюстративна -- эта система всего лишь одно из звеньев цепи, соединяющей скепсис начала статьи с очевидными проблемами поиска "альтернативы". Однако очевидность последних еще не означает, что с ними все ясно, -- по крайней мере, в причинно-следственном смысле. В данном случае сами проблемы являются следствиями, а вот чего именно...

Здесь, для начала, следует заметить, что рост стоимости и изменение условий лицензирования пользовательского коммерческого ПО -- вполне объяснимое явление, и для его объяснения совершенно не требуется выдумывать "врагов". Рост функциональности приводит к росту сложности, сложность -- к катастрофическому увеличению стоимости проектов (от нескольких сотен долларов за строчку отлаженного кода до самых немыслимых цифр), что и отражается в цене программ как товара. Продавец ПО использует функциональность в качестве мощного аргумента в формировании спроса из-за того, что сам покупатель ПО хочет все большей функциональности. Круг замыкается, и существенных изменений ситуации ожидать не приходится. Балансирование на тончайшей грани, отделяющей столь привлекательных пользовательскому сердцу программных монстров, максимально освобождающих от необходимости изучать что-то лишнее (это желание абсолютно здравое и нормальное), от удобных простых программ -- слишком утонченное эзотерическое искусство, доступное, вероятнее всего, только просветленным мудростью гениям. Гениев, как известно, рождается очень мало, а программ требуется очень много.

Второе замечание, без которого не обойтись, касается цели процесса поиска "альтернативы". К сожалению, в большинстве случаев она сводится именно к наивной попытке обойти стороной только что упомянутый замкнутый круг за счет иллюзорной бесплатности целого ряда программных продуктов пользовательского назначения. Бесплатность в данном случае именно "иллюзорна" -- на подобные проекты уже затрачены сотни тысяч (если не миллионы) человеко-часов, их сложность исключительно высока. Соответственно, в развитии неизбежно наступит момент, когда выражающаяся в человеко-часах стоимость модификаций и реинжиниринга -- всего того, что связано с жизнью программного проекта, станет непомерно большой. А ведь абстрактные человеко-часы, в которых измеряется сложность, на деле вполне реальны -- это то время, которое фактически оплачено самими разработчиками из собственного бюджета. Различные "человеческие" факторы, такие, как энтузиазм, преданность идеям и, наконец, "классовая ненависть", в данном случае никакой роли не играют -- их действие слишком кратковременно.

Наконец, третье замечание касается мотивации разработчиков и пользователей. По большому счету, на сегодняшний день в этих двух группах наблюдаются два ортогональных мотива -- "борьба против" и "приверженность идеям".

А вот теперь настало время взглянуть на Bluebottle по-иному. Компактная, келейно, но стабильно развивающаяся система, не наследующая багаж морально устаревших технологических особенностей, целью разработчиков которой всегда было балансирование между сложностью и функциональностью, казалось бы, обречена на успех в "альтернативном" мире.

Более того, в ходе эволюции очень специфический (концептуально целостный, но спорно удобный) пользовательский интерфейс системы трансформировался в нечто современное и, если так можно выразиться, "удобоваримое", при этом ОС не утратила привлекательности для апологетов "чистой" Oberon. Дополним эти сведения уже упомянутой крохотностью бинарных компонентов (агентов), составляющих систему, небольшим размером полного дистрибутива (менее 35 MB), изначальной пригодностью Oberon к портированию на различные платформы и, наконец, растущим интересом к компактным и функциональным ОС среди производителей разнообразных карманных и портативных компьютеров. Казалось бы, все очевидно, и Bluebottle вполне могла бы найти себе место под солнцем. Однако логичность наших рассуждений никак не влияет на реальность. Сегодня Oberon можно считать операционной системой, "ушедшей со сцены без единого выхода"... Если отойти от технических нюансов, ее очевидные недостатки как товара, как-то: отсутствие широкого спектра приложений, слабое развитие базы драйверов для x86-компьютеров и прочие "детские болезни", свойственные любому молодому проекту, -- можно сбросить со счетов -- в свое время и PalmOS, и EPOC, и Windows CE имели такие же "болячки". Сегодня же пользовательское ПО для этих систем поражает изобилием...

Можно по-разному трактовать причины печальной судьбы Oberon и ряда не менее красивых разработок, о которых мы говорили прежде (Inferno и Plan 9, AtheOS). По идее востребованные, они остаются изгоями современного компьютинга. И это действительно симптом -- вполне возможно, и произошедших смещений в понятии "альтернатива". У всех перечисленных ОС, несмотря на работоспособность, множество уникальных достоинств, доступность, мобильность и нетребовательность к ресурсам, есть общий недостаток. А именно, они не отвечают главному требованию к сегодняшней альтернативной системе -- "чтобы была как Windows, но бесплатной". Более того, их разработчики никогда не ставили перед собой цели создания аналога самой популярной ОС мира, да и сообщество пользователей этих систем максимально дистанциируется от такой "альтернативы". И, опять же, вероятнее всего, будущее этих систем предопределено -- все, что они позволяют, доступно фактически в любой современной ОС (другой вопрос -- какой ценой достигается эта доступность), посему крохотное сообщество их разработчиков и пользователей неизбежно будет сокращаться в размерах под натиском неумолимых требований жизни...

Очень хотелось бы завершить все эти невеселые размышления каким-нибудь итогом, если говорить казенным языком -- "подвести черту" раз и навсегда. Но в этом нет необходимости -- за нас это сделает жизнь. Те, кому интересна Bluebottle, могут легально бесплатно загрузить дистрибутив системы с сайта aosbox.ethz.ch, предварительно изучив особенности инсталляции и основные принципы работы с ней на сайте www.oberon.ethz.ch.

0 
 

Напечатать Отправить другу

Читайте также

 
 
IDC
Реклама

  •  Home  •  Рынок  •  ИТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Сети  •  Безопасность  •  Наука  •  IoT