Судьба Оберона
Руслан Богатырев
Романтические 1970-е
Паскаль умер… Эту фразу приходится слышать довольно часто. Одни произносят ее с ностальгией, с налетом грусти, умом понимая, что романтические 1970-е годы уже не вернуть. Другие – без тени эмоций, спокойно, как констатацию приговора, вынесенного самой судьбой.
Начало 1970-х ознаменовалось рождением трех языков, роль которых в развитии современного программирования переоценить тяжело. Паскаль (Никлаус Вирт, 1970; ETH, Швейцария), Си (Деннис Ритчи, 1971; AT&T Bell Labs, США) и Smalltalk (Алан Кей, 1972; Xerox PARC, США) – эта великая тройка дала путевку в жизнь трем важнейшим направлениям: структурному, системному и объектно-ориентированному программированию (ООП). Она определила и разные языковые ветви с непохожим синтаксисом и существенно отличающейся языковой культурой.
Оберон – самый дальний спутник планеты Уран
Паскаль продолжил строгую линию Алгола-60, убрав все наносное и упорядочив его фундамент. Три кита структурного программирования (последовательность операторов, ветвление и цикл), закрепленные Чарльзом Хоаром и Никлаусом Виртом в аксиоматическом описании Паскаля, стали столь же незыблемыми в информатике, как законы Ньютона в классической механике. Для математиков, физиков и представителей других наук Паскаль стал унифицированной языковой средой, своего рода латынью программирования. Как известно, в истории латинского языка выделяют три ярких периода: золотая латынь (Цицерон, Цезарь, Вергилий, Гораций, Овидий), серебряная латынь и поздняя латынь. Язык Паскаль также прошел три этапа: золотой (1970–1985, ETH Pascal, UCSD Pascal), серебряный (1985–1995, Turbo/Borland Pascal) и поздний (с 1995, Delphi).
Язык Си, этот бунтарь-анархист, в начале 1970-х бросил дерзкий вызов всем классическим языкам. Си не хотел ни внешне, ни внутренне походить на то, что до него знали. Машинная арифметика, ассемблерный стиль программирования, странный синтаксис. Язык получился незамысловатый, хотя и весьма "огнеопасный". Но для тех, кто искал приключений, любил ходить по лезвию ножа, он оказался родным и просто незаменимым. Си имел мощный практический фундамент – на нем была написана ОС UNIX, причем росли и учились жизни они бок о бок, в одной комнате, в стенах AT&T Bell Labs.
Smalltalk почти все 1970-е годы был малоизвестен. В лабораториях Xerox только-только зарождались первые ростки персональных компьютеров, об исследованиях знали лишь посвященные. Да и в отличие от Паскаля и Си язык сразу сросся со своей инструментальной средой. Это была маленькая вселенная, особый мир, в котором творить можно было буквально все. Рай для детей и взрослых. Но он слишком опередил время… C++, Java, C# спустя десятилетия шли по его стопам, но уже куда более жестким, размеренным, прагматичным шагом.
В этой большой тройке Паскаль выделялся ярче остальных. Он появился в период кризиса языков Алгол-семейства и противопоставил имперскому величию Алгола-68 и ПЛ/1 изысканность и простоту. Мир больших машин становился все более тесным и душным для воплощения новых идей. Человечество смутно искало выход, и революция микрокомпьютеров, где Паскаль блестяще солировал, стала сильнейшим катализатором популярности самого известного языка профессора Вирта.
Паскаль открывал широкие перспективы не только перед высшей школой и научным миром, ибо благодаря унификации резко усилился обмен идеями, но и перед бизнесменами новой волны, рванувшим на "золотые прииски" Кремниевой долины. Практичные американцы подхватили знамя Паскаля и с присущим им размахом стали водружать его на ключевых высотах. Марка Паскаля была сильна, но в реальности под ней чего только не выпускали. Рынок сначала подмял под себя язык, а затем и размыл его на множество несовместимых диалектов. Так от блестящих образцов "золотой латыни" остались одни лишь смутные воспоминания.
А что же Вирт? Он старался не отвлекаться на всю ту мишуру и шумиху, которая окружила такой корыстной заботой его детище. Вдохновленный поездкой в Xerox PARC (1976–1977), где был создан Mesa, один из лучших языков модульного программирования, он приходит к мысли, что всю триаду "компьютер-язык-ОС" надо проектировать одновременно. Только тогда можно добиться гармонии в этом трудном инженерном деле – конструировании удобной и надежной среды для персональной работы. Один за другим он создает языки Modula (1976) и Modula-2 (1979). Причем на этот раз переносит акцент на аппаратную составляющую – компьютер Lilith[1] (1977–1981) стал первым в Европе персональным 16-разрядным компьютером с растровым дисплеем, винчестером, мышью, лазерным принтером и локальной сетью, при этом был создан силами небольшой группы исследователей из университетского центра.
Он работал под управлением собственной модульной ОС – Medos (автор – Свен Кнудсен), полностью написанной на новом языке Вирта (Modula-2). Более того, для эффективности выполнения на аппаратном уровне была реализована поддержка M-кода, дальнейшего развития знаменитого P-кода Вирта (кода виртуальной Паскаль-машины), который спустя почти четверть века после своего появления был положен в основу платформы Java. За эти работы Никлаус Вирт в 1984 г. был представлен ассоциацией ACM к высшей награде – премии Алана Тьюринга (Alan Turing Award), которая в компьютерном научном мире эквивалентна Нобелевской премии.
1980-е годы прошли под знаком колоссального интереса к персональным компьютерам. Apple и IBM начали свое великое противостояние в мире ПК. Но как же далеки были эти компьютеры от того, что было сделано в лабораториях Xerox и учебных корпусах ETH! Отрасли потребовалось еще целое десятилетие, чтобы подобраться к идеям, реализованным вдохновенными инженерами по обе стороны Атлантики. На страницах PC World, PC Magazine, BYTE не только замелькала реклама новинок рынка, но и стали появляться статьи, определявшие пути развития компьютерного мира. Благодаря феномену языка Smalltalk (точнее, системы Smalltalk-80) интерес к ООП стал расти как снежный ком. Стало очевидно, что новый подход к программированию не обойдет стороной и другие языки.
Проект Oberon
Осенью 1985 г. Вирт и его коллега Юрг Гуткнехт начинают проект Oberon. Вновь создавалась триада "язык-компьютер-ОС". На этот раз акцент переносился на ОС и произошло более четкое разделение труда. Вирт проектировал язык и писал компилятор, Ганс Эберле конструировал компьютер, а Гуткнехт создавал систему Oberon. На самом деле работы над новым компьютером начались немного раньше. Дальнейшее развитие Lilith поставило, по словам Вирта, задачу создания "современной, гибкой и эффективной операционной системы для однопользовательской рабочей станции". Поначалу казалось, что этого можно было добиться в рамках Medos и Modula-2. Лишь затем стало ясно, что нужны более кардинальные шаги.
Если Lilith (архитектор – Ричард Оран) создавался на основе микропроцессоров AMD2901 фирмы Advanced MicroDevices, то Ceres (так звали новый компьютер, в честь богини Цереры) использовал 32-разрядный процессор NS32032 фирмы National Semiconductor (затем уже NS32532 и NS32GX32). Вслед за серией Ceres в ETH был разработан компьютер Chameleon (Хееб и Пфистер). Первой ОС была Medos, да и первый компилятор Оберона создавался на языке Modula-2 (Вирт).
Системе Oberon предшествовали исследования, которые проводились в ETH в 1981–1985 гг. на Lilith Юргом Гуткнехтом и его коллегами, Винигером и Шером. Сначала появился редактор Andra с поддержкой всевозможных окон, шрифтов, средств композиции страницы, а затем и редактор Lara. Примерно в тот же период Вирт разработал графический редактор и завершил работы над новым однопроходным компилятором языка Modula-2.
К середине 1988 г. уже был готов компилятор для экспериментальной рабочей станции Ceres-2 (на базе NS-32532) и прошли первые публикации Вирта (в апреле и июле; сначала "Type Extensions" в ACM Transactions on Programming Languages and Systems, а затем "From Modula to Oberon" в Software Practice&Experience).
"Компилятор Оберона был реализован для процессоров семейства NS32000 и был встроен в операционную среду Oberon. Этот компилятор требует менее 50 Кбайт памяти, состоит из 6 модулей общим размером около 4000 строк исходного текста и сам себя компилирует примерно за 15 секунд на рабочей станции с 25 МГц процессором типа NS32532".
Никлаус Вирт (1988)
Вторая стадия проекта Oberon наступила летом 1991 г., когда было положено начало так называемой Oberon System 3.
"Графические интерфейсы ныне используются повсеместно, и игнорировать это проявление духа времени не может себе позволить ни одна серьезная операционная система. Поэтому летом 1991 г. мы приступили ко второй стадии проекта Oberon. Однако, в ту пору мы хотели не просто облачить по сути "голую" систему Oberon в нарядные GUI-одежды, но и сделать важный шаг вперед. Несколько раздвигая границы устоявшихся представлений, мы сразу стали рассматривать графический интерфейс как набор истинных визуальных объектов".
Ю. Гуткнехт (1994)
О системе Oberon следует говорить куда более обстоятельно, чем это позволяют рамки данной статьи. Здесь же упомяну, что многие ключевые идеи взяты на вооружение современной ИТ-индустрией из системы Oberon: динамическая компиляция и аплеты, смарт-теги и Digital Dashboard, концепция интеллектуального документа и веб-службы.
Одно из наиболее перспективных направлений дальнейшего развития Oberon – превращение его в усовершенствованную общую платформу для предоставления услуг удаленным пользователям; слово "усовершенствованную" мы понимаем в данном случае как гибкую, высоко интегрированную и индивидуализированную. К настоящему времени мы провели эксперименты по организации следующих услуг удаленным пользователям (и реализовали доступ к ним через Ethernet и TCP/IP):
электронный телефонный справочник;
электронный справочник пассажира железной дороги;
электронный словарь;
фотосервис Digital Kodak;
информационная система по географии Швейцарии;
служба символьных вычислений Maple;
служба TrueType-шрифтов;
FTP;
электронная почта;
управляющая служба Telnet;
поддержка World Wide Web;
Teletext и Telenews.
Ю. Гуткнехт (1994)
Подобно тому, как в свое время ОС UNIX начала ветвиться (System V и BSD), в ETH возникли две конкурирующие группы – Oberon V4 и Oberon System 3. Да и сама система Oberon оказалась непростой для самостоятельного изучения: интерклики мышкой – почти азбука Морзе. Спроектирована она была хорошо, а вот реализация подкачала (главным архитектором проекта был Гуткнехт; главного инженера, увы, не было). Удобной становится после длительного освоения и только для посвященных – тех, кто сумел набраться терпения и преодолеть все издержки экспериментального программирования. Система Oberon оказалась Великой Китайской стеной, отделяющей новаторов-затворников от остального мира. Будучи хорошей базой для исследований Oberon System сыграла роковую роль в судьбе самих языков Оберон-семейства. Она затмила собой одноименный язык, созданный Виртом с участием Гуткнехта, окружив его "теплом и заботой".
"Перечислить все идеи, на основе которых сформировалось то, что сегодня называется Обероном, – писал Вирт, – просто нет возможности. Большинство этих идей родилось в ходе применения или изучения существующих языков (таких, как Modula-2, Ada, Smalltalk, Cedar), которые часто показывали нам, каких решений следует избегать". На сегодняшний день компиляторы канонического Оберона доступны только внутри системы Oberon и системы Juice (Oberon System для Netscape и Internet Explorer), а также представлены транслятором COP2 (трансляция в Си). В контакт с агрессивным внешним миром коммерческих систем вступили последователи Оберона: Oberon-2 и Component Pascal, а затем Active Oberon и Zonnon.
Силы в ETH в 1990-е годы были сосредоточены на создании переносимых и перенацеливаемых компиляторов для разных платформ. Этим занимались преимущественно аспиранты Вирта и Гуткнехта. Кадры выросли очень сильные, апробированные идеи можно плодотворно изучать до сих пор (диссертации почти все как на подбор), а вот результат их работы почти неизвестен даже специалистам.
К февралю 1990 г. был готов переносимый компилятор OP2. Кстати, именно его брали за основу при начале работ над компилятором Oberon-2 Алексей Недоря и его новосибирские коллеги по XDS.
В июне 1989 г. Ханспетер Мессенбок спроектировал Object Oberon, добавив ООП-расширения в канонический Оберон. Именно Мессенбока, пожалуй, и следует считать автором Oberon-2, в который вылился Object Oberon. Вирт не возражал против соавторства в языке, поскольку расхождения по сравнению с Обероном были не фатальными, хотя и не лежали в рамках того критического взгляда на ООП, который исповедовал сам Вирт. Весной 1991 г. в журнале Structured Programming (издательство Springer-Verlag, в редколлегии были Н. Вирт и Д. Кнут) в одном номере вышли две статьи, давшие публичную жизнь языку Oberon-2: "The Programming Language Oberon-2" и "Differences between Oberon and Oberon-2", под которыми стояли фамилии Мессенбока и Вирта.
К моменту появления Oberon-2 в 1991 г. информация об Обероне только-только стала выходить из стен ETH. Сторонние разработчики компиляторов сделали ставку именно на Oberon-2, считая, что это просто улучшенный Оберон. При этом важно отметить, что распространение пошло не по линии Open Source – едва ли не каждый сторонний разработчик компиляторов хотел сделать на новом языке свой бизнес.
В июне 1993 г. в Кройдоне, что в предместье Лондона, в отеле Oakwood собрались заинтересованные лица, многие из которых получили горький опыт затяжной промышленной ISO-стандартизации Modula-2. Были там и главные архитекторы лучших Оберон-компиляторов: Алексей Недоря (XDS), Гюнтер Дотцель (ModulaWare), Куно Пфистер (Oberon microsystems), Джон Гуг (John Gough, QUT, GPCP). В ходе дискуссий были выработаны рекомендации и стандартная библиотека для Oberon-2. Ее следы вы теперь найдете в компиляторах XDS и JOB.
Затмение Оберона
В 1993 г. в ETH приехали представители Sun Microsystems во главе с Биллом Джоем. Они приобрели лицензию на систему Oberon и пригласили с ответным визитом выступить у них лучших учеников Вирта – Микаэль Франц сразу после защиты соответствующей диссертации в ETH делал доклад по динамической кодогенерации в Sun Labs в марте 1994 г., за 14 месяцев до выхода Java и за полгода до разработки браузера HotJava.
Согласно информации Sun [JavaSoft], идея переориентации Java на World Wide Web возникла в 1994 г. и принадлежала Биллу Джою, одному из основателей фирмы. Осенью 1994 г. началась работа по реализации Web-браузера HotJava с возможностью выполнения аплетов. В марте 1995 г. браузер был представлен избранному кругу стратегических партнеров Sun, включая руководство корпорации Netscape Communications, чья публичная поддержка впоследствии немало способствовала успеху новой технологии. В августе 1995 г. состоялся триумфальный выпуск Java, который происходил в довольно необычной для базовых технологий форме – в виде серии пресс-конференций.
…может быть интересно то обстоятельство, что в марте 1994 г. автором был прочитан в Калифорнии ряд докладов по теме диссертации, причем один из них – в Sun Laboratories, Inc. Кроме того, упомянутый выше Билл Джой, который переориентировал проект Java на WWW, стал одним из первых обладателей лицензии на Oberon System из ETH, и в конце 1994 – начале 1995 г. он неоднократно связывался с ETH; в процессе контактов выяснилось, что он читал мою диссертацию.
Микаэль Франц (1996)
В 1994 г. Франц, разрабатывавший ранее кодогенератор Оберона для MC680x0 (Macintosh), завершил кодогенератор в промежуточный код – OMI (Oberon Module Interchange). Впервые на русском языке информация об этом была опубликована в альманахе "Технология программирования" (1995, №1). Идея Франца была проста – вместо традиционной схемы "компилятор – компоновщик – загрузчик" получить схему "компилятор – кодогенерирующий загрузчик", иными словами, совместить генерацию кода, компоновщик и загрузчик в одном флаконе.
Концепция "code-generation on-the-fly" (динамическая кодогенерация, кодогенерация на лету) с использованием компактного древовидного представления вместо классического байт-кода была положена в основу одноименной диссертации М. Франца, которую он защищал в ETH в феврале 1994 г. Его научными руководителями были Никлаус Вирт и Юрг Гуткнехт. Крайне интересная диссертация. Помню, как о ней в среде Modula- и Оберон-сообщества только и говорили (почти с придыханием). Редкий случай – в Цюрихе в марте 1994 г. она была переиздана в виде книги.
В Sun не рискнули сразу копировать все из Oberon (идеи браузерной среды языка, аплетов и трансляции в мобильный код взяли, а вот путь реализации мобильного кода выбрали свой). В 1991 г. автор Java Джеймс Гослинг при реализации Oak (прототипа языка Java) взял старую идею P-кода, которую хорошо знал: в 1975 г. Гослинг вместе с Недом Китлицем и Бобом Сайдботемом участвовал в построении среды программирования Pyxis/Multics Pascal, способной по быстродействию кода и удобству интеграции на равных конкурировать в Multics c родным для этой ОС языком ПЛ/1. А начинали они с поддержки компилятора ETH/Zurich Pascal, разработанного в Цюрихе группой профессора Вирта. В 1979 г. Гослинг реализовал PERQ – транслятор с P-кода в машинный код DEC VAX.
В 1994 г. Sun не стали рисковать включением новейшей хитроумной реализации мобильного кода в древовидном представлении, что предлагал в диссертации Франц, а сохранили готовый подход Гослинга. Для всей отрасли модель Sun на долгие годы стала эталоном.
К тому моменту широкой аудитории доступ к Оберон-компиляторам был заказан: даже при нынешнем уровне пиратского тиражирования столь специфичный инструментарий, имеющий единичные продажи, заполучить нереально.
Единственный игрок, кто мог cделать массовый коммерческий компилятор Оберона – компания TopSpeed (JPI) – в те годы шел к закату. Их последним движением в сторону новых языков Вирта было включение в Modula-2 собственных ООП-расширений. (Напомню, что фирма JPI/TopSpeed вышла из недр Borland. Ее, увы, короткая жизнь началась после того, как в знак протеста против замораживания проекта Turbo Modula-2 в угоду рыночным перспективам раскрученного Turbo Pascal компанию Borland покинула группа вице-президента Йенсена.)
Брюс Баррингтон, основатель и глава Clarion Software, приобрел компанию TopSpeed, где основным рабочим языком был Modula-2, для перевода своего детища, языка Clarion, на рельсы лучших в ПК-отрасли компиляторов TopSpeed (Assembler, Modula-2, Pascal, C/C++). В связи с этим был заморожен проект TopSpeed Ada, а затем и все остальные компиляторы (они остались на 16-разрядной платформе). Единицы знают, что внутри среды Clarion (теперь этот бизнес ни шатко ни валко ведет фирма SoftVelocity) до сих пор запрятан 32-разрядный компилятор TopSpeed Modula-2, так никогда и не вышедший на рынок.
Это был еще один удар по Оберонам.
Но самой мощной волной, накрывшей Обероны с головой и на долгие годы предавшей их забвению, стала Java. Она стремительно ворвалась в ту нишу, которую себе подготовил Оберон, нахраписто и без какого-либо упоминания вырвала многие его идеи, высосала лучшие кадры. Но если бы еще это делалось с умом. А так... С другой стороны, прошло 10 лет с момента появления Java, и теперь после ревизии ошибок прошлого можно взглянуть на Обероны по-новому. Как и Smalltalk, cлишком уж они опередили свое время.
Ренессанс Оберона
Продолжим краткий рассказ об истории языков Оберон-семейства. Новый виток в их жизни начался в том момент, когда в ETH созрела идея создания небольшой компании (Oberon microsystems), ориентированной на внутренний швейцарский рынок (в основном это были промышленные роботы). Главным мотором стал Куно Пфистер, а архитектором Component Pascal – Клеменс Шиперски.
К концу 1990-х годов на волне очевидного негатива к Sun в ETH пришла Microsoft. Начались совместные проекты (по линии Microsoft Research), совпавшие по времени с проектированием платформы .NET. Клеменс Шиперски из Oberon Microsystems перешел в Microsoft Research. К тому моменту он уже завоевал огромный авторитет в мире компонентно-ориентированного проектирования и программирования благодаря книге "Component Software – Beyond Object- Oriented Programming". Там есть отдельная глава, посвященная системе BlackBox (Component Pascal). Книга вышла в 1997 г., затем дважды стереотипно переиздавалась в 1998 г., затем дважды в 1999 г., наконец второе ее издание вышло в 2002 г.
Компонентный Паскаль проектировался так, чтобы, с одной стороны, иметь возможность работать с основной компонентной моделью – COM (Oberon/F, предвестник BlackBox, получил в конце 1990-х годов на CeBIT приз за технологическое совершенство – за реализацию Direct-to-COM Compiler), а с другой – с миром Java. При этом в Oberon microsystems (где, кстати, был написан по заказу Borland JIT-компилятор для JBuilder) начались работы по использованию Component Pascal для мира встроенных систем (ОС Portos, ныне JBed). Именно эти работы положили начало зарождению компании Esmertec – мирового лидера заказных решений для Java 2 Micro Edition.
Среди критиков Оберона можно слышать слова о том, что если он обладал столь совершенными технологиями, то почему его не видно на рынке. Честно говоря, трудно привести примеры, когда за последние четверть века технологическое совершенство в инфраструктурном или инструментальном программном обеспечении предопределяло безусловное лидерство на рынке. Обратных примеров сколько угодно.
Чтобы понять ту пропасть, которая отделяет нынешнюю ИТ-индустрию от взвешенного научно-технологического подхода, стоит задаться вопросами:
1. Зачем Borland в 1980-х годах утопила в своих недрах технологически наиболее совершенную среду Turbo Modula-2? Правильно, в угоду своего рыночного положения, дабы этим не убить свой же Turbo Pascal – курицу, несущую золотые яйца.
2. Почему в 1990-х годах элегантный Smalltalk так и не смог поколебать позиции уродливого C++, неумело поставившего крайне модные тогда идеи ООП на рельсы Си? Верно, не в интересах Microsoft и Borland было восстанавливать былую мощь IBM в области инструментария.
3. Почему Microsoft не вывела на орбиту очень приличный Eiffel Бертрана Мейера? Помните, как Билл Гейтс лично хлопал мэтра по плечу и всячески расхваливал компилятор Eiffel for .NET? Книгу Мейера о .NET превозносили до небес. Но... мавр сделал свое дело – мавр должен уйти. Профессор Мейер был нужен Гейтсу лишь для раскрутки .NET. Мейер ушел в затворничество в швейцарский ETH – альма-матер виртовских языков.
4. Почему компания Esmertec, отпочковавшаяся от Oberon microsystems и сделавшая в конце 1990-х годов свою дуальную ОС Portos для встроенных систем (Оберон+Java), вынуждена была практически полностью перевести свою продукцию на рельсы Java? Точно, если рынок предпочитает для себя худший язык (Java) и худшую среду (Java 2 Micro Edition) – пожалуйста, они сделали это просто лучше всех в отрасли и стали здесь лидерами. А вслед за этим реализовали и компактный Smalltalk для систем реального времени.
В последние годы ИТ-индустрия насильно превращает университеты в ремесленные училища. При этом Россия благодаря своей защитной инертности умудрилась во многом сохранить оазис неремесленного программирования. И Delphi явился той палочкой-выручалочкой, которая этому во многом способствовала. За это Delphi большое спасибо. Но сейчас перспективы Delphi в маркетинговом плане выглядят весьма туманно. На платформе Linux инструментарий Kylix заморожен. Borland стала по сути филиалом Microsoft и нужна редмондскому гиганту, чтобы достойно противостоять линейке IBM Rational. Но дело не только в более чем реальном уходе Delphi с рынка. Уже сейчас специалисты по Delphi остаются в индустрии невостребованными. А поскольку университеты стремительно сращиваются с индустрией, то Delphi будет вымываться из учебного процесса. На этом может быть поставлена жирная точка в судьбе языков Паскаль-семейства.
Мир инструментария все больше становится двухполюсным: Microsoft – IBM. Компания Sun Microsystems вопреки огромной шумихи не только почти ничего серьезного не сделала в Java за 10 лет (весь воз корпоративной Java почти в одиночку тащила IBM), но и своим апрельским соглашением 2004 г. с Microsoft фактически объявила войну своему бывшему союзнику.
На рынке ИТ все более усиливается пропагандистская война, битва за умы. Здесь неуместны рассуждения о технологическом совершенстве и, упаси Боже, о какой-то там науке!
Причины забвения Оберона выглядят так:
* распыление сил и средств внутри ETH (V4 против System 3, Оберон против Oberon-2);
* распространение лучших оптимизирующих компиляторов единичными тиражами на коммерческой основе;
* отсутствие групп пользователей (User Groups) и собственных изданий;
* слабая интернет-активность;
* мощная волна Java-пропаганды;
* отток специалистов в коммерческий мир Java и .NET.
И все же самыми главными стали три момента:
1. Отсутствие четкой программы популяризации/вывода языков на рынок.
2. Колоссальный информационный голод.
3. Игнорирование резко выросшего потенциала OpenSource-движения.
Но язык не поворачивается обвинить во всем этом ETH. Он вел интенсивные исследования и совершенствовал свой учебный процесс, в чем достиг выдающихся результатов, а вот поддержка "народных масс" в Швейцарии и близлежащих европейских странах оказалась слабоватой. Америке же Оберон был чужд и, наверное, наивно было бы полагать, что его подобно Паскалю начнут активно продвигать американцы, у которых был теперь свой "золотой телец" в лице Java.
И все же Оберон отнюдь не умер. Люди, занимавшиеся и продолжающие заниматься им, стараются не особо это афишировать. За примерами далеко ходить не надо. Ученик Вирта, Микаэль Франц, создал внутри университета Калифорнии в Ирвайне свою маленькую Оберон-империю. Вот только он об этом не кричит на каждом перекрестке. Все финансирование проектов идет для его группы только по линии Java. Ныне его команда – один из мировых лидеров в исследовании мобильного кода и проблем ИТ-безопасности для Java. Ирония судьбы, ярый противник Java ведет перспективные Java-проекты для американского ВПК.
Критики Оберона не ставят под сомнение элегантность языка (да и перспективность всего семейства), а считают устаревшим доступный для него инструментарий и неустойчивое положение компаний-разработчиков. С позиций таких IDE-систем, как Visual Studio, Delphi и Eclipse, он в самом деле выглядит по-спартански скромным, без "свисточков и звоночков". В то же время благодаря Клеменсу Шиперски (Microsoft Research) и группе Пола Ро в Квинслендском университете (Австралия) ориентированный на компонентное программирование диалект Оберона в лице Component Pascal имеет три актуальных реализации для Visual Studio (.NET 1.x и 2.0), Java (JVM) и Eclipse (JVM). Юрг Гуткнехт совместно с Евгением Зуевым (ETH) продолжают развивать компилятор Zonnon для .NET с интеграцией в Visual Studio. Наконец, в России ведутся работы по переносу, пожалуй, основной инструментальной среды для Оберонов – BlackBox (Component Pascal) с платформы Win32 на Linux.
Направление микромира – браузеров и встроенных систем (не только военного назначения, а и чисто бытового: мобильные телефоны, коммуникаторы, КПК) – крайне выгодно отличает Oberon от всех остальных языков. И хотя в связи с коммерческой активностью на этом рынке компании Esmertec Оберон-технологии носят закрытый характер, часть инструментария публично доступна для дальнейшего развития.
Потенциал миниатюрного компилятора JOB (Oberon-2 для JVM), созданный Сергеем Свердловым, вполне пригодился бы для этого рынка. В области браузеров есть технология Juice (Oberon System для Netscape и IE), реализованная Микаэлем Францем и приостановленная в связи с переключением его группы на работы для Министерства обороны США по безопасности мобильного Java-кода. На ее основе можно делать замечательные вещи. Только представьте, что в любом современном браузере можно иметь Оберон-движок, который является полноценным компилятором с динамическим кодогенерирующим загрузчиком, имеет полный доступ к ОС и модули которого внешне (с точки зрения HTML) оформляются как Java-аплеты. Код аплетов получается примерно в 1,5-2 раза меньше, чем у Java, скорость исполнения – практически одинаковая. Все это выполнено еще в 1996 г. в виде подключаемого модуля для Netscape и Internet Explorer и занимает около 400 Кбайт. Есть все исходные тексты (на C++ реализована прослойка для ОС и браузера, на языке Оберон – все остальное). Очень перспективная вещь для задач, ориентированных на технологию тонких клиентов и требующих нешаблонных решений.
Поворотный этап в развитии Оберона начался с переводом BlackBox в категорию freeware и Open Source (конец 2004 г.). В мае 2005 г. новосибирская фирма Excelsior (XDS) перевела свою линейку Modula-2/Oberon-2 компиляторов в разряд freeware, вслед за началом разработки нового компилятора Modula-2 для НПО ПМ им. Решетнева, ведущего российского центра по созданию спутников связи. Одновременно с этим профессор Никлаус Вирт начал работы по адаптации своих бестселлеров для языка Оберон и перевод в открытый доступ своих лучших книг.
Важнейшую роль в возрождении интереса к Оберону сыграла растущая активность нарождающегося Оберон-сообщества в России, которую стимулировал проект "Информатика-21", стартовавший на физфаке в МГУ в 2001 г. (автор – Ф. В. Ткачев). Вокруг проекта сформировалась панель консультантов, представляющих аэрокосмическую индустрию, Российскую академию наук и МГУ. Весной 2004 г. на базе швейцарского CERN (Европейский центр ядерных исследований, Женева), откуда вышел World Wide Web, с участием России были инициированы работы по активному применению Component Pascal в фундаментальных научных исследованиях. С 2003 г. в рамках "Студии программирования" журнала "Мир ПК" и CD-приложения "Мир ПК-диск" начались регулярные публикации работ по развитию Оберона и размещение соответствующего инструментария.
В сентябре-октябре 2005 г. с большим визитом по нашим крупнейшим университетским центрам (Москва, С.-Петербург, Нижний Новгород, Новосибирск, Екатеринбург, Томск) Россию посещает Никлаус Вирт и Юрг Гуткнехт. Осенью этого года начнет выходить электронный журнал "Школа Оберона", ближе к концу года (к 35-летию Паскаля и 25-летию выпуска Lilith) запланировано открытие сайта, в котором будет собрана и систематизирована информация о прошлом, настоящем и будущем языков Вирта, в том числе о новых проектах в ETH и за его пределами.
Если говорить об интересе к Оберону в остальном мире, то сейчас он более чем сдержанный. Те, кто разобрались, в чем его плюсы, – особенно не афишируют, используя его как конкурентное преимущество в своем бизнесе.
Бытует мнение, что Оберон сродни объектным СУБД: выглядит красиво, а реально его почти не используют. Но разве то, что используют немногие, говорит об ущербности или непрактичности? Конечно же, нет. Вопрос в том, сумеем ли мы вопреки шумной рекламе и сложившемуся статус-кво ИТ-индустрии приподняться над ветреной модой и суетой рынка и взять Оберон на вооружение. Это зависит лишь от нас самих.
И если уж проводить параллели, то куда корректнее сравнивать Оберон с путеводной звездой (хоть и самый дальний спутник Урана). Тихо светит и другим не мешает...
Статья опубликована в журнале "Мир ПК – Диск", 2005 г., №9.