Никлаус Вирт  в  России
Niklaus Wirth  in  Russia
Главная страница  /  Оберон. Коротко о главном БОЛЬШОЕ ТУРНЕ  Н. ВИРТА

Оберон. Коротко о главном. Часть 1
Краткие ответы на ключевые вопросы

  1. Что такое Оберон ?
  2. Что же такого особенного в Обероне, чтобы ему уделять повышенное внимание?
  3. Если Оберон является развитием Паскаля, который многими в среде промышленного программирования не воспринимается, то чем он может быть лучше ведущих языков?
  4. Можно ли на Обероне делать серьезные проекты? Есть ли опыт промышленного использования?
  5. Как соотносится Оберон с самыми популярными языками, такими как Си, C++, Java, C#, Delphi?
  6. Верно ли, что Java, C# и Ada-95 многое скопировали из Оберона? И если это так, то чем лучше Оберон?
  7. Чем Оберон лучше Delphi?
  8. Если Оберон такой замечательный, то почему о нем до сих пор не было ничего известно?
  9. Какие задачи можно решать на Обероне?
  10. Сколько нужно времени, чтобы освоить Оберон?
  11. Какую среду программирования лучше всего использовать для программирования на Обероне?
  12. Можно ли использовать Оберон в школах?
  13. Как использовать Оберон в университетах?
  14. В чем главные недостатки Оберона?


1. Что такое Оберон?

Это одновременно название языка (Oberon, 1988), операционной системы (Oberon System, 1985) и проекта (Project Oberon, 1985-1995), в результате которого в Высшей Политехнической школе ETH в Цюрихе, где учились Альберт Эйнштейн и Джон фон Нейман, были созданы под руководством проф. Никлауса Вирта (Niklaus Wirth) язык программирования, операционная система и ориентированные на них компьютеры (Ceres, Chameleon). Следуя традиции, в отечественных изданиях название языка программирования записывается русскими буквами (Оберон), а название ОС и проекта — на языке оригинала (Oberon).


2. Что же такого особенного в Обероне, чтобы ему уделять повышенное внимание?

Главная особенность Оберона — это очень простой и компактный язык, развивающий возможности Паскаля (1970) и Modula-2 (1979) и реализующий основные идеи современного программирования: процедуры, модули, абстрактные типы данных, ООП, компоненты. Реализован для основных платформ (Windows, Linux, DOS, Mac OS, Mac OS X, .NET, Java) и процессоров (x86/Pentium, Power, PowerPC, StrongARM, Motorola, NS32xxx, SPARC, PA-RISC, Amiga). С точки зрения инженерного искусства сродни знаменитому автомату Калашникова (АК-47, аналогия предложена Ф.В.Ткачевым, Институт ядерных исследований РАН) — продуманная простота стала залогом непревзойденного совершенства и высочайшей надежности. Это язык-чемоданчик, в котором нет ничего лишнего и который тем самым выгодно отличается от языков-сундуков, где про запас хранятся подчас совершенно ненужные средства (аналогия предложена проф. В.Ш.Кауфманом, МГУ).

В Обероне есть три кита, на которые опирается его философия (см. "От Modula к Oberon"):
  1. процедурные типы (процедура как тип, коммутация функций);
  2. модули (единица компиляции и загрузки, основа построения компонентов);
  3. расширение комбинированного типа (расширяемые записи, альтернатива ООП и основа динамической эволюции систем).

Изящный Оберон в качестве эсперанто программирования (см. "Оберон как эсперанто программирования") имеет блестящие перспективы: нейтралитет (neutrala lingvo), стабильность, безупречная репутация, преемственность традиций, выразительная мощь, отображение на ведущие языки, простота изучения и восприятия, наличие проверенного годами инструментария. Что важно, это не мертвый язык. Семейство Оберон, включающее языки Оберон, Оберон-2, Компонентный Паскаль, Active Oberon, Zonnon и созданное в стенах знаменитой Высшей Политехнической школы ETH в Цюрихе продолжает развиваться на всем спектре ведущих платформ (Win32, Linux, .NET, Java/Eclipse) и в самых разных сферах: от мобильных телефонов и промышленных роботов до систем управления гигантскими гидросооружениями мира. Отсутствие коммерческих реализаций в лице ведущих компаний мира дает Оберону право претендовать на нейтралитет, на центральную роль, подобную той, которую долгое время играет Швейцария в банковском деле.

На Обероне совсем не обязательно писать. На нем достаточно просто мыслить и решать сложные задачи, претворяя отточенные в нем идеи в промышленных языках программирования, выбор которых диктуется условиями конкретных программных проектов.


3. Если Оберон является развитием Паскаля, который не воспринимается всерьез в среде промышленного программирования, то чем он может быть лучше ведущих языков?

Со стороны ИТ-индустрии, оказывающей мощное воздействие на университеты и академическую науку, в последние годы началось беспрецедентное наступление на позиции Паскаля и его преемников. Оно было обусловлено рыночными интересами мировых лидеров рынка и использовало разрозненность Паскаль-сообщества, активно насаждая различные мифы. Из ранних критических работ по Паскалю, пожалуй, наибольшую известность получила статья Брайана Кернигана "Почему Паскаль не является моим любимым языком программирования", которая в 1981 г. появилась на свет в виде препринта AT&T Bell Laboratories. Для многих апологетов Си она стала знаменем "религиозной" борьбы с Паскалем. Керниган намеренно умалчивал о работах Вирта, направленных на устранение проблем языка. А ведь к весне 1980 г. Вирт и его коллеги не только уже завершили работы по компьютеру Lilith и языку Modula-2 (1977-1981), но и опубликовали их результаты. Более того, за эти работы Вирт в 1984 г. был представлен ассоциацией ACM к высшей награде — премии Алана Тьюринга (Alan Turing Award), которая в компьютерном научном мире эквивалентна Нобелевской премии. Об этом, к сожалению, знали очень немногие.

В отношении развития языков Вирта до сих пор существуют ложные стереотипы, умело культивируемые его противниками. Творчество Вирта намеренно сводят к ранним работам по Паскалю, тогда как лучшие его достижения, исповедующие принципы модульного и расширяющего программирования (Modula-2 и Оберон), по-прежнему находятся в забвении.


4. Можно ли на Обероне делать серьезные проекты? Есть ли опыт промышленного использования?

Большинство крупных промышленных проектов среди языков Оберон-семейства было выполнено на языке Компонентный Паскаль (Component Pascal) в среде BlackBox. Он является компромиссной адаптацией Оберона к требованиям промышленных систем и был разработан в 1997 г. коммерческим детищем ETH — швейцарской компанией Oberon microsystems. Американское космическое агентство NASA, европейский военно-промышленный комплекс (BAE Systems, DuPont Ballistic Lab), ядерная физика (проекты CERN), крупнейшие банки (Royal Bank of Canada, Swiss Re), специальный инструментарий для конструкторских бюро автомобильного гиганта BMW, средства лазерной топографии (Optech), система управления крупнейшим в мире каскадом ГЭС на Амазонке (Alstom Power), федеральная система управления дорожным движением в Швейцарии — вот лишь некоторые примеры использования языков Оберон-семейства в сегодняшнем индустриальном мире.


5. Как соотносится Оберон с самыми популярными языками, такими как Си, C++, Java, C#, Delphi?

С точки зрения структуры языка, его синтаксиса и семантики, Оберон не только не уступает популярным языкам программирования, но по ряду показателей превосходит их. Его ахиллесова пята — прагматика, аскетичность и внешняя неброскость инструментария, очень скромное количество библиотек. Эти проблемы могут быть решены путем привлечения к развитию его прагматики новой волны разработчиков. Нейтралитет, центральное положение Оберона по отношению к другим языкам в плане выражения алгоритмов дает возможность ему претендовать на роль эсперанто программирования (идея предложена Р.П.Богатыревым, Мир ПК).

Б. Майер, проф. латинского языка Кембриджского университета (Великобритания), так характеризовал классическое эсперанто: "В качестве преддверия к изучению других языков язык столь простой, столь правильный, столь богатый гласными, как эсперанто, имел бы большую ценность, в особенности для англичан. Поэтому следовало бы обучать детей сначала эсперанто, чтобы потом перейти к французскому, латинскому, немецкому и греческому". Подобное место эсперанто среди других языков программирования вполне по силам занять Оберону. Тогда переход к промышленным языкам программирования (и между ними) был бы заметно облегчен.


6. Верно ли, что Java, C# и Ada-95 многое скопировали из Оберона? И если это так, то чем лучше Оберон?

Говорить, что они скопировали многое, было бы неверно. Но то, что позаимствовали ключевые идеи, — это факт. Технология Java (1995) взяла из проекта Oberon (1985-1995) мобильность объектного кода и динамическую компиляцию, а также ориентацию на Интернет (браузер, аплеты). Язык C# (2000) — процедурные типы (делегаты). Язык Ada-95 (1995) — расширение типа (как альтернативу ООП). Все попытки Ю.Гуткнехта (наряду с Виртом — автора этой важнейшей идеи программирования) добиться от авторов Ada-95 ссылки на источник заимствования (Оберон) ничем не увенчались. Таковы реалии сегодняшнего дня. Идеи не являются предметом авторского права, поэтому вопрос упоминания источников заимствования остается на уровне правил хорошего тона, которые просто игнорируют в угоду рыночным амбициям.

Оберон лучше не только тем, что копии редко могут улучшить оригинал, но и превосходит упомянутых оппонентов сбалансированностью идей (ничего лишнего).

Микаэль Франц, ученик Вирта, разработчик первых реализаций аплетов (предложивший само слово "аплет"), автор фундаментальной диссертации, обосновывающей подходы динамической компиляции Оберона и других языков, в 1996 г. писал (см. "Java: критическая оценка"): "Согласно информации Sun, идея переориентации Java на World Wide Web возникла в 1994 г. и принадлежала Биллу Джою, одному из основателей фирмы. Осенью 1994 г. началась работа по реализации Web-браузера HotJava с возможностью выполнения аплетов. <...> Может быть интересно то обстоятельство, что в марте 1994 г. автором был прочитан в Калифорнии ряд докладов по теме диссертации, причем один из них — в Sun Laboratories. Кроме того, упомянутый выше Билл Джой, который переориентировал проект Java на WWW, стал одним из первых обладателей лицензии на Oberon System из ETH, и в конце 1994 г. — начале 1995 г. он неоднократно связывался с ETH; в процессе контактов выяснилось, что он читал мою диссертацию".


7. Чем Оберон лучше Delphi?

Как минимум, самим фактом своего существования. Оберон (1988) — язык, созданный в спокойной университетской среде; после небольших корректив 1990 г. ни разу не менявший описания, что еще более усиливает его открытый характер для различных реализаций на всевозможных платформах. Delphi (1995) — продукт конкурентной рыночной борьбы, плод одной конкретной компании (Borland), испытывавшей взлеты и падения (см. "Черный четверг Borland. Тучи над Delphi"). За годы своей эволюции язык Delphi (ранее — Object Pascal) претерпел существенные изменения и выдержал 8 редакций, при этом язык столь тесно переплетается с инструментальной средой, что обеспечить его реализацию на других платформах силами сторонних компаний практически невозможно.

С падением интереса Borland к Linux (после отказа от слияния с Corel и ориентации на Microsoft) фактически заморожено развитие версии Delphi для Linux (среды Kylix). Delphi — гораздо более сложный язык, чем Оберон, и имеющий почти в 3 раза больше правил формирования синтаксиса (что сопоставимо с C++, Java и C#). Delphi родился в результате развития языков Turbo/Borland Pascal, которые, в свою очередь, позаимствовали и существенно усложнили идеи языка Modula-2 — прямого предка Оберона.

Уровень реализации компонентного программирования в Обероне (точнее, в Component Pascal, BlackBox) несопоставим с Delphi и технологически существенно превосходит возможности Delphi и других современных систем создания программных компонентов. При этом Delphi наряду с Ada остаются наиболее подходящими языками для переноса с них важных программных наработок на языки Оберон-семейства.


8. Если Оберон такой замечательный, то почему о нем до сих пор не было ничего известно?

Проф. Юрг Гуткнехт (ETH, 2005): "Люди получают то, что они заслуживают". В современном мире технологическое совершенство крайне редко берет верх над рыночными интересами. Из проекта Oberon лидерами ИТ-рынка было заимствовано немало плодотворных идей, нередко без какого бы то ни было упоминания. В популяризации блестящего университетского проекта никакой мотивации у них не было. Два десятка лет назад Microsoft использовала разработку в ETH персонального компьютера Lilith и ОС Medos как один из главных контраргументов в выигранном ею деле против Apple относительно заимствования идей пользовательского интерфейса, после чего Lilith попал на почетное место в музей Microsoft. По данным Google на август 2005 г. (см. "Оберон как эсперанто программирования"), в Интернете содержится 148 тыс. страниц, упоминающих язык программирования Оберон, и 648 тыс. страниц с упоминанием системы Oberon. Это в 5-7 раз меньше, чем для очень популярных языка и среды Delphi. Как показывает анализ web-ссылок, об Обероне упоминают в числе прочих языков и систем. Что он из себя представляет и каковы его реальные перспективы, знает довольно узкий круг специалистов.

Причины забвения Оберона выглядят так:

  • распыление сил и средств внутри ETH (V4 против System 3, Оберон против Oberon-2);
  • распространение лучших оптимизирующих компиляторов единичными тиражами на коммерческой основе;
  • отсутствие групп пользователей (User Groups) и собственных изданий;
  • слабая интернет-активность;
  • мощная волна Java-пропаганды;
  • отток специалистов в коммерческий мир Java и .NET.

Самыми главными предпосылками неизвестности Оберона стали три момента:

  1. Отсутствие четкой программы популяризации/вывода языков на рынок.
  2. Колоссальный информационный голод.
  3. Игнорирование резко выросшего потенциала OpenSource-движения.

То была не вина ETH. Он вел интенсивные исследования и совершенствовал свой учебный процесс, в чем достиг выдающихся результатов, а вот поддержка "народных масс" в Швейцарии и близлежащих европейских странах оказалась слабой. Америке же Оберон был чужд и наивно было бы полагать, что его подобно Паскалю 1970-х годов начнут активно продвигать американцы, у которых теперь свой "золотой телец" в лице Java (см. "Судьба Оберона").


9. Какие задачи можно решать на Обероне?

Практически любые. Это объясняется тем, что Оберон является самым компактным в мире языком высокого уровня, сохраняющим преемственность традициям структурного и модульного программирования, обеспечивающим высокую надежность ПО, и при этом являющимся высокоуровневым ассемблером ООП. На Обероне в конце 1980-х годов была полностью написана операционная система (Oberon System), которая без какого-либо дополнительного языка (включая ассемблер) работает на "голом" железе. Эта система в автономном варианте существует и сейчас (Native Oberon, развитие — Bluebottle).

Во время Большого турне проф. Вирта по России (2005) его ближайший соратник проф. Гуткнехт объявил приз в размере 1000 долл. за задачу, которая решается на C++ и не может быть эффективно решена на Обероне. Он спокойно мог увеличить приз на три порядка, не боясь проиграть пари.


10. Сколько нужно времени, чтобы освоить Оберон?

Описание языка, созданное Никлаусом Виртом, невероятно компактное — 16 страниц (см. The Programming Language Oberon). Краткий путеводитель по языку — 4 страницы (см. "Язык Оберон. Краткий путеводитель"). Время освоения зависит от многих факторов (мотивации, наличия наставника, дополнительной литературы, опыта программирования и т.п.). Если Оберон — ваш первый язык программирования, то для его освоения может потребоваться примерно полгода. Если уже есть опыт работы на языках Паскаль-семейства (напр., Delphi), то 2-3 недели. Для тех, кто знает языки Си-семейства (Cи, C++, C#, Java), — примерно 1-3 месяца.


11. Какую среду программирования лучше всего использовать для программирования на Обероне?

Если вы планируете быстро добиться результата и в ближайшем будущем тесно интегрировать свои Оберон-разработки с Win32-библиотеками, то лучше начинать с BlackBox. Эта среда наиболее привычна большинству программистов, бесплатна, доступна в открытых исходных текстах, адаптирована для российских школ и университетов. Она имеет встроенный компилятор языка Компонентный Паскаль (Component Pascal), который несколько сложнее Оберона и немного отличается по базовым типам данных, но сохраняет приверженность идеям языка Оберон.

Если вы искушенный программист, вас интересует высокое качество генерируемого объектного кода и возможность решать самые сложные задачи наиболее компактными средствами, то используйте среду XDS. Она имеет встроенные компиляторы языков Оберон-2 и Modula-2 и может использоваться для поддержки Оберон-проектов любого масштаба. Это основной инструментарий для создания бортового программного обеспечения отечественных спутников связи. Среда отличается лаконичным ретро-стилем 1990-х годов и ориентирована на профессионалов. Ее ключевой особенностью является поддержка Win32 и Linux, причем с возможностью трансляции Оберон/Modula-программ в Си (K&R, ANSI C) и C++ (опять же, для обеих этих платформ).

Если вас интересует использование Оберона на новейших языковых платформах (.NET, Java 2), то используйте компиляторы Компонентного Паскаля — GPCP (с интеграцией в Visual Studio и Eclipse), а для .NET — родственные Оберону языки: Active Oberon и Zonnon.

Если вы хотите в максимальной степени освоить возможности Оберона в изоляции от остального программного мира, то используйте компилятор внутри эталонной системы ETH Oberon, являющейся преемницей Oberon System 3. Эта система работает поверх Windows (Linux, Mac OS и др. ОС) как обычное приложение.

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


12. Можно ли использовать Оберон в школах?

Не только можно, но и нужно. Он является блестящей заменой Бейсику и Turbo Pascal, которые доминируют в наших школах. Наиболее сбалансированной средой программирования на Обероне для школ является BlackBox. Причем, несмотря на небольшой размер (около 30 Мбайт на диске) и скромные требования к компьютеру, это полноценная среда для промышленного программирования. На ней выполнены крупнейшие программные проекты. Развитием методической поддержки преподавания Оберона в школах и вузах занимается научно-образовательный проект "Информатика-21".


13. Как использовать Оберон в университетах?

Этот вопрос требует обстоятельного ответа. Для краткой информации: Оберон (в рамках ETH Oberon for Windows, XDS, BlackBox) особенно хорош для начальных курсов университетов и для тех задач, которые не требуют привязки к ведущим коммерческим платформам (.NET и Java). Для последних наиболее оптимально использование Компонентного Паскаля в реализации GPCP и языка Zonnon в реализации ETH. Язык Zonnon в настоящее время преподается в Нижегородского государственном университете им. Н.В.Лобачевского (ННГУ, проф. В.П.Гергель) и Новосибирском государственном университете (проф. В.Н.Касьянов).


14. В чем главные недостатки Оберона?

Это недостатки не технологического плана, а маркетингового. Малая известность и, как следствие, ограниченное количество книг и других изданий; очень небольшое число библиотек и почти полное отсутствие проектов в открытых исходных текстах (OpenSource). Помимо основной некоммерческой системы (ETH Oberon) ведущие коммерческие системы программирования для языков Оберон-семейства (XDS и BlackBox) были переведены в свободный доступ (freeware) только в 2004-2005 гг.

В 2004 г. компания Oberon microsystems сначала сделала BlackBox бесплатным, а затем и открыла его исходные тексты. В мае 2005 г. новосибирская фирма Excelsior (XDS) перевела свою линейку Modula-2/Oberon-2 компиляторов в разряд freeware, вслед за началом разработки нового компилятора Modula-2 для НПО ПМ им. Решетнева, ведущего российского центра по созданию спутников связи. Одновременно с этим профессор Никлаус Вирт начал работы по адаптации своих бестселлеров для языка Оберон и перевод в открытый доступ своих лучших книг. Важнейшую роль в возрождении интереса к Оберону сыграла растущая активность нарождающегося Оберон-сообщества в России, которую стимулировал проект "Информатика-21", стартовавший на физфаке в МГУ в 2001 г. (автор — Ф.В.Ткачев). Вокруг проекта сформировалась панель консультантов, представляющих аэрокосмическую индустрию, Российскую академию наук и МГУ. Весной 2004 г. на базе швейцарского CERN (Европейский центр ядерных исследований, Женева), откуда вышел World Wide Web, с участием России были инициированы работы по активному применению Component Pascal в фундаментальных научных исследованиях. В 2002 г. на крупнейшем в России портале Паскаль-сообщества (Королевство Delphi) открылись форумы обсуждения языков Оберон-семейства. С 2003 г. в рамках "Студии программирования" журнала "Мир ПК" и CD-приложения "Мир ПК-диск" начались регулярные публикации работ по развитию Оберона и размещение соответствующего инструментария.

В сентябре-октябре 2005 г. с Большим турне по нашим крупнейшим университетским центрам (Москва, С.-Петербург, Нижний Новгород, Новосибирск, Екатеринбург, Томск) Россию посещают Никлаус Вирт и Юрг Гуткнехт. Осенью 2005 года начнет выходить электронный журнал "Школа Оберона", ближе к концу года (к 35-летию Паскаля и 25-летию выпуска Lilith) на базе событийного сайта Oberon2005 запланировано открытие постоянно действующего центра, в котором будет собрана и систематизирована информация о прошлом, настоящем и будущем языков Вирта, в том числе о новых проектах в ETH и за его пределами.

Города:

O  (13 сентября)  С.-Петербург
B  (19 сентября)  Москва
E  (26 сентября)  Нижний Новгород
R  (29 сентября)  Екатеринбург
O  (2 октября)      Новосибирск
N  (5 октября)      Томск

Информационные ресурсы:


Книги Вирта:


Языки Оберон-семейства:


Инструментарий:


Координаторы турне: