Оберон-клуб «ВЄДАsoft»

Твердыня модульных языков
Текущее время: 29 мар 2024, 03:26

Часовой пояс: UTC + 2 часа




Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: VisualOberon
СообщениеДобавлено: 16 дек 2013, 10:09 
Не в сети

Сообщения: 67
Сейчас изучаю эту библиотеку.
http://visualoberon.sourceforge.net

Проект интересный, но остановлен автором в 2004 году.
Потом на его основе он сделал библиотеку Illumination на C++.
http://illumination.sourceforge.net

Может заняться развитием этого проекта дальше? Написано вроде бы на чистом Oberon-2. Многоплатформенность заложена изначально. Да и сборка - немецкая, а не какая-нибудь китайская подделка! :-)


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: VisualOberon
СообщениеДобавлено: 16 дек 2013, 10:37 
Не в сети
Аватара пользователя

Сообщения: 1019
Откуда: Днепропетровская обл.
Да, проект крайне интересный: GUI-библиотека для никсов и виндов. Но написан он не на чистом Обероне-2, а с применением расширений конкретного транслятора oo2c (OOC), ну, например, начиная с этого:
Код: "OBERON"
  1. IMPORT U := VO:Base:Util,
  2. Z := VO:Base:Size,
  3.  
  4. G := VO:Object;
Правда, можно портировать, но придётся портировать и привязки.

В своё время присматривался к этому проекту с большим интересом, но дело не дошло даже попробовать скомпилить примеры. Упёрся в то, что никсы нужны (для самого транслятора). Хотя вроде бы как-то можно использовать его и под виндой (наверное с помощью cygwin), но "ниасилил", в итоге плотно сел на Ofront, о чём не жалею, обалденная вещь.

Вобщем, много работы ради идеи делать GUI именно на Обероне, а не на чём-то другом. :) Но почему бы и нет, может кто-то и возьмётся. Но наверное не я (я больше в сторону портирования KOL на Оберон-2/КП приглядывался; хотя оно только и виндузное).

А есть ещё попытка портировать дельфийский VCL на Оберон-2 (OVCL). Берётся где-то здесь.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: VisualOberon
СообщениеДобавлено: 16 дек 2013, 11:23 
Не в сети

Сообщения: 67
Ага. :-)
Грабли с importом там не самые большие. Следующим ударом по голове стали типы LONGCHAR и STRING.
Немцы коварно обманули - на сайте написано, чистейший Оберон-2 и все такое, а на деле - руками все переделывать :-)

Или не полениться и осилить сей неблагодарный труд?....


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: VisualOberon
СообщениеДобавлено: 16 дек 2013, 11:31 
Не в сети

Сообщения: 67
Насчет остальных ваших ссылок.... Ну не знаю. ББ не для меня. Pow! или XDS мне почему-то более симпатичны. А под них нужна либа для GUI. А VisualOberon - симпатичен и видимо то, что нужно. Осталось только перенести под чистый Оберон-2.
Видимо проект в 2004 году потому и заглох - автор выбрал не тот компилятор - слишком специфичный.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: VisualOberon
СообщениеДобавлено: 16 дек 2013, 12:15 
Не в сети
Аватара пользователя

Сообщения: 1019
Откуда: Днепропетровская обл.
Да компилятор хороший, с творческим подходом к языку Оберон. :) Переработка, так сказать. Пропущенный через призму своего взгляда на Оберон-языки. Присутствуют интересные расширения. И ведь совместимость с Обероном-2 (кажется) сохранена? А почему проект не пошёл в массы? Даже не знаю. Сначала он был включен во многие дистрибутивы Линукса, потом, видимо, из-за отсутствия поддержки, был убран, что оказало свой эффект на его распространение.

ББ мне представляется при всех своих недостатках более необычным средством, в т.ч. и как подход. Там очень интересно реализована расширяемость. Сам каркас по мере расширения предметной области становится приложением. Это сильно отличается от использования обычной GUI-библиотеки. И по опыту скажу, что иногда переосмысление такого подхода длится годами. Скажем, я использую ББ в качестве основы для XDev, но не разобрался и с десятой долей возможностей этой системы.

Если мысль всё-таки не идёт в сторону ББ (при всех его недостатках) или AOS/WinAOS (тоже решение для GUI, хотя тоже несколько нетривиальное), можно попробовать основаться на какой-нить dll-ке. Я присматривался в своё время к sdl_gui.dll, но поскольку решаю задачи, связанные с GUI, с помощью других средств, не решился на такие эксперименты. А это будут именно эксперименты, а не быстрая, комфортная разработка. При всех достоинствах языка Оберон.

OVCL заточена под компилятор OPCL (модифицированный компилятор из ETH Oberon). Портировать её на Компонентный Паскаль будет несложно.

Несомненно Оберону нужна своя библиотека для GUI. Как Lazarus. :) Но перед этим надо выбрать компилятор. Я бы взял КП/ББ (не в качестве среды, а в качестве отдельно взятого из неё компилятора). Язык имеет свои достоинства перед Обероном-2. Рабочее решение с помощью линкера DevElfLinker может быть собрано и для Линукса (в рамках этой технологиии пока только для i386). В ББ для традиционной разработки (как среды, из которой используется только компилятор и линкер) есть всё, кроме, пожалуй, умной линковки (smart linking), т.е. в целевой EXE пихаются не только использованные процедуры, а все используемые модули.

Если хочется других процессоров и архитектур, наверное нужно основываться на Ofront (для которого нету WinApi, я делаю привязки по мере необходимости) или том же oo2c. Вариантов, как видите, не так уж и много, в итоге приходим к тому же самому VisualOberon, ведь можно начинать разработку не с нуля, здесь уже много чего есть.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: VisualOberon
СообщениеДобавлено: 17 дек 2013, 10:55 
Не в сети
Аватара пользователя

Сообщения: 1019
Откуда: Днепропетровская обл.
Last_Alien писал(а):
Ага. :-)
Грабли с importом там не самые большие. Следующим ударом по голове стал типы LONGCHAR и STRING.
Немцы коварно обманули - на сайте написано, чистейший Оберон-2 и все такое, а на деле - руками все переделывать :-)

Или не полениться и осилить сей неблагодарный труд?....
Так ли уж обманули, если есть совместимость сверху-вниз? :) oo2c по-своему решает те же задачи, для которых модифицировался Оберон-2, чтобы превратиться в такой же совместимый сверху-вниз с ним Компонентный Паскаль.

Да и LONGCHAR — суровая необходимость, GUI-библиотека без юникода будет игрушкой. Кстати, в языке КП очень ловко ухвачены и с большой аккуратностью и минимализмом исправлены подобные недостатки Оберона-2, которые ему ставят в вину, не будем спорить, часто заслуженно. Это напоминает критику Паскаля энцатилетней давности в сравнении со свеженьким стандартом Сей, чем в своё время отличился Брайан Керниган в статье «Почему Паскаль не является моим любимым языком программирования». ;)


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: VisualOberon
СообщениеДобавлено: 17 дек 2013, 12:49 
Не в сети

Сообщения: 67
Кажется я был слишком оптимистичным.
Модуль Object импортирует модуль Base:Object. А тот, в свою очередь - Object. Циклический импорт. Сразу возникает вопрос об архитектуре библиотеки :-(


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: VisualOberon
СообщениеДобавлено: 17 дек 2013, 14:01 
Не в сети

Сообщения: 67
Код: "OBERON"
  1.  
  2. IF D.display.displayType=D.displayTypeTextual THEN
  3. p.arrow:=I.CreateVecImage(VB.simpleRight);
  4. p.menuFrame:=F.CreateFrame(F.single);
  5. p.stripFrame:=F.CreateFrame(F.none);
  6. ELSE
  7. p.arrow:=I.CreateVecImage(VB.arrowRight);
  8. p.menuFrame:=F.CreateFrame(F.double3DOut);
  9. p.stripFrame:=F.CreateFrame(F.double3DOut);
  10. END;
  11.  


Поддержка и графического, и текстового устройства отображения? Хм. Вот так вот.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: VisualOberon
СообщениеДобавлено: 17 дек 2013, 16:54 
Не в сети
Аватара пользователя

Сообщения: 1019
Откуда: Днепропетровская обл.
Last_Alien писал(а):
Или не полениться и осилить сей неблагодарный труд?....
Это тот случай, когда надо не переписывать код на чистый Оберон-2 под POW!, а хотя бы для начала прочувствовать библиотеку, т.е. пойти в гости к ней (собрать под OO2C), хоть и вломы, а шо делать. Потом уже можно под самим OO2C её постепенно избавить от циклического импорта, вот уж что действительно не ортодоксально. ;) Ибо хорошая архитектура предполагает хорошую структуризацию.

Я сразу отсоветовал slenkar'у собирать Ofront из исходников другим транслятором, под который Ofront не рассчитан. Оберон-2 как стандарт достаточно могуч, но на практике не самодостаточен, сильное влияние имеет специфика низкоуровневых привязок. Например, в ББ процедура винапи может возвратить указатель на запись, а в OPCL нет (приходится возвращать LONGINT и конвертировать в указатель через SYSTEM.VAL), всё это из-за того ИМХО, что часть проблем Оберона не была решена в своё время, особенно некоторые моменты, включая низкоуровневые. Теперь это наследие расхлёбываем.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: VisualOberon
СообщениеДобавлено: 18 дек 2013, 11:00 
Не в сети

Сообщения: 67
Да, шо делать :-)
Другого выхода похоже нет, так что собираю все под Линуксом сейчас - как и положено.


Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 2 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
© VEDAsoft Oberon Club