Ada_Ru форум

Обсуждение языка Ада

GUI: ???? ????????? ????? ?????????

Оставить новое сообщение

Сообщения

Vladyslav Kozlovskyy
GUI: ???? ????????? ????? ?????????
2005-08-17 13:31:00

Народ,

 

Я тут подумал: взаимодействие программы и GUI может строится по двум принципам:

 

1. программа-клиент; GUI-сервер.

 

Программа юзает GUI как хочет (довольно стандартный подход - программа навешивает на GUI калбеки и вызывает его функции).

2. программа-сервер; GUI-клиент.

 

GUI юзает программу как хочет (GUI-модуль навешивает на

программу калбеки и вызывает ее фунцкии)

Получается, для возможности использования разных GUI необходимо

программу ВСЕГДА строить по принципу СЕРВЕР?

 

интерфейс

(COM/CORBA/SOAP/XML/...)

||

программа <------>||<--------->UI

СЕРВЕР || КЛИЕНТ

 

Программа фактически предоставляет ресурсы, которые и юзаются через интерфейс.

 

А если программу строить как HTML сервер или типа того, то будет работать и под консолью (без графики) и на всех платформах :) :(

 

Так банально.... :( Полагаю, мы не этого достичь хотели?

 

 

--

Best regards,

Vladyslav

hi,

 

Vladyslav Kozlovskyy wrote:

 

Народ,

 

Я тут подумал: .....

 

интерфейс

(COM/CORBA/SOAP/XML/...)

||

программа <------>||<--------->UI

СЕРВЕР || КЛИЕНТ

 

Программа фактически предоставляет ресурсы, которые и юзаются через

интерфейс.

 

А если программу строить как HTML сервер или типа того, то будет работать

и под консолью (без графики) и на всех платформах :) :(

 

Так банально.... :( Полагаю, мы не этого достичь хотели?

ага... если картинку чуть перерисовать:

 

X-интерфейс

||

программа <------>||<--------->UI

СЕРВЕР || КЛИЕНТ

 

то... получается, что "все новое - это хорошо забытое старое" (С) не мАйо

 

 

Alex

Hello Alex,

 

приятно познакомиться с легендарной личностью! :)

 

Если б не Ваша книга, вряд ли я бы смог освоить Аду и принять решение изучать и использовать ее дальше. Спасибо!

 

 

Wednesday, August 17, 2005, 4:52:29 PM, you wrote:

 

hi,

 

Vladyslav Kozlovskyy wrote:

 

>Народ,

 

>Я тут подумал: .....

 

интерфейс

(COM/CORBA/SOAP/XML/...)

||

>программа <------>||<--------->UI

>СЕРВЕР || КЛИЕНТ

 

>Программа фактически предоставляет ресурсы, которые и юзаются через >интерфейс.

 

>А если программу строить как HTML сервер или типа того, то будет работать >и под консолью (без графики) и на всех платформах :) :(

 

>Так банально.... :( Полагаю, мы не этого достичь хотели?

 

 

ага... если картинку чуть перерисовать:

 

X-интерфейс

||

программа <------>||<--------->UI

СЕРВЕР || КЛИЕНТ

 

то... получается, что "все новое - это хорошо забытое старое" (С) не мАйо

а никто и не сомневался :((((

 

дик все равно мечтаем-с о чем-то большом и светлом :)

 

Тут проблемка даже не в том, что обмусоливаем банальные идеи, а

как эти, уже проверенные временем идеи, использовать с наибольшей еффективностью и меншими затратами.

 

Ежели, например, удастся автоматически строить интерфейс по данным из программы-сервера, да еще и кое-какие, пускай пустые, реализации UI в придачу, то можно считать, что наша задача почти выполнена.

 

Жаль только что информации (мне лично) не хватает - я не знаю толком реализации многих GUI, а посему сложно продумать более-менее

универсальный интерфейс :(

 

"А удача была так близко!" (С) не моЁ

 

--

Best regards,

Vladyslav

hi,

 

Vladyslav Kozlovskyy wrote:

 

Hello Alex,

 

приятно познакомиться с легендарной личностью! :)

 

"легендарная личность" - с ума сойти!

Ребят, не перехвалите!

 

Если б не Ваша книга, вряд ли я бы смог освоить Аду и принять решение

изучать и использовать ее дальше. Спасибо!

Дык для того и делалось. А то достали изречения всяких апологетов:

"мертворожденный язык... изобретение Пентагона... etc..." ;-)

 

Тут проблемка даже не в том, что обмусоливаем банальные идеи, а

как эти, уже проверенные временем идеи, использовать с наибольшей

еффективностью и меншими затратами.

imho, основная проблема скорее в наличии целого зоопарка

GUI-шных библиотек для построения интерфейса пользователя,

которые идеологически не особо рознятся,

но фактически - не совместимы.

 

 

Alex

Vladyslav Kozlovskyy wrote:

 

Получается, для возможности использования разных GUI необходимо

программу ВСЕГДА строить по принципу СЕРВЕР?

 

Обычно так и происходит... И это вполне естественно (особенно для Ada мира) - программа очень часто работает вечно, а вот человеки со своими интерфейсами... творят что хотят.

 

Но даже в таких программах периодически интерфейся являются серверами - приложение "выталкивает" постипившие данные в интерфейс в "реальном" времени.

 

интерфейс

(COM/CORBA/SOAP/XML/...)

DSA :)

 

Я предложу пока не сильно заморачиваться на сути интерфейса, но в мои планы входило после разработки языка описания попробовать спроектировать его конвертор на CORBA IDL.

 

Так банально.... :( Полагаю, мы не этого достичь хотели?

 

Это общеизвестные слова. Последнее лет десять ими постоянно

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

 

Мы просто посмотрели на эту задачу под чуть-чуть другим углом и увидели что-то новое, что раньше либо никто не видел, либо если и увидел - то никому не сказал. :) :(

 

 

--

Vadim Godunko

Hello Alex,

 

Wednesday, August 17, 2005, 5:41:43 PM, you wrote:

 

hi,

 

Vladyslav Kozlovskyy wrote:

 

>Hello Alex,

 

>приятно познакомиться с легендарной личностью! :)

 

"легендарная личность" - с ума сойти!

Ребят, не перехвалите!

 

Постараемся! ;о)))

 

...

imho, основная проблема скорее в наличии целого зоопарка

GUI-шных библиотек для построения интерфейса пользователя,

которые идеологически не особо рознятся,

но фактически - не совместимы.

 

Дык из ентого все и началось! Только под Windows (пока моя родная платформа) есть (дай вспомнить): WinX, GWindows, Claw,

Win32 (GNAT) + RAPID, GTKAda :(

 

А сколько еще есть под Unix-ами мне и не известно! :(

 

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

 

"Жизнь коротка, а жить не с кем. Вот и живеш с кем попало!" (С) женское

 

--

Best regards,

Vladyslav

Oleksandr Havva wrote:

 

>приятно познакомиться с легендарной личностью! :)

 

"легендарная личность" - с ума сойти!

Ребят, не перехвалите!

 

Не переживай, опустим :) Коды к тамагавкам ещё никто не отменял :)

 

Дык для того и делалось. А то достали изречения всяких апологетов: "мертворожденный язык... изобретение Пентагона... etc..." ;-)

 

Ох ребята... Как мне это знакомо...

 

Дали мы объявление о найме на работу. От большого ума дал контактный телефон. Теперь весь коллектив через день угарает от очередного

"кандидата". Каждый про своё, но вот вчера меня заверили, что

"...прекрасно знают, что всё ПО Пентагона на Аде написано...". Без комментариев.

 

 

--

Vadim Godunko

hi,

 

Vadim Godunko wrote:

 

Мы просто посмотрели на эту задачу под чуть-чуть другим углом и увидели

что-то новое, что раньше либо никто не видел, либо если и увидел - то

никому не сказал. :) :(

"И это правильно!" (С)

Если не пытаться смотреть на задачу/проблему под разными углами зрения,

то решение само с неба не свалится ;-)

 

 

Alex

Vladyslav Kozlovskyy wrote:

 

Дык из ентого все и началось! Только под Windows (пока моя родная платформа) есть (дай вспомнить): WinX, GWindows, Claw,

Win32 (GNAT) + RAPID, GTKAda :(

 

А сколько еще есть под Unix-ами мне и не известно! :(

 

А х..то его знает. Я когда исследовал, что использовать нашёл десятка два. Наиболее живы сейчас Athena, Motif, Gtk, Qt (первые два включены в любой дистрибутив, вторые активно "продвигаются").

 

 

--

Vadim Godunko

hi,

 

Vadim Godunko wrote:

 

Не переживай, опустим :)

"опустим" --- ага... а с виду интеллигентный человек ;-)

 

Alex

hi,

 

Vadim Godunko wrote:

 

Vladyslav Kozlovskyy wrote:

Дык из ентого все и началось! Только под Windows (пока моя родная

платформа) есть (дай вспомнить): WinX, GWindows, Claw,

Win32 (GNAT) + RAPID, GTKAda :(

 

А сколько еще есть под Unix-ами мне и не известно! :(

 

А х..то его знает. Я когда исследовал, что использовать нашёл десятка

два. Наиболее живы сейчас Athena, Motif, Gtk, Qt (первые два включены в

любой дистрибутив, вторые активно "продвигаются").

Насколько помню, еще б/м активно сопровождается FLTK (Fast Light Tool Kit).

Правда, как мне кажется, академически/концептуально наиболее проработанным

будет Motif.

 

 

 

Alex

 

Wednesday, August 17, 2005, 7:57:46 PM, you wrote:

...

(блин, как бы не пришлось описывать логику работы на обоих

сторонах - и гуя-процесса или либы, и клиента. Или отделить

гуй от процесса-логики и сделать это как бы еще одним

приложением?..)

 

для сложных задач скорее всего да. И при портировании на другую

платформу гуишная логика может (а часто и будет) изменятся.

 

Например: на одной платформе узается сложный супер-пупер грид с

inplace редактированием, а на другой - простой listbox и рядом

кнопки <add> <delete> <modify> и popup окно с editbox-ом.

Функциональность соблюдена? Соблюдена. (правда юзабилити похерено :)

Номано? Номано. Особенно, если порт (читай, перепись) супер-пупер грида может занять месяц или более.

 

 

Получается, для возможности использования разных GUI необходимо

программу ВСЕГДА строить по принципу СЕРВЕР?

 

разбить на несколько уровней по сложности использования/возможностям, и нет проблем. Если все варианты продуманы заранее, то думаю и переход между ними по мере роста сложности программы будет не сложен...

 

Все варианты заранее не продумаешь :( Тут нужон концептуальный подход, дающий пространство для маневра

 

 

Причем возможно что по мере роста возможностей и сложности будет расти и системо-зависимость...

А вот этого желательно б избежать

 

 

Vladimir

 

 

 

 

--

Best regards,

Vladyslav

On Wed, 17 Aug 2005 16:31:00 +0300, Vladyslav Kozlovskyy <dbdeveloper@...> wrote:

 

Я тут подумал: взаимодействие программы и GUI может строится по двум

принципам:

 

1. программа-клиент; GUI-сервер.

 

самое простое наверно - GUI-подпрограмма.

 

Тоесть вызываешь типа GetData("Введите то-то", v);

и нет проблем.

 

Или окошко поверх всего типа "Ошибка. Нажмите то-то".

 

Самое простое и удобное по использованию - никаких заморочек,

можно даже без обработок ошибок обойтись. Не надо ждать пока

там нажмут на кнопку и как-то это обрабатывать и тд и тп...

 

 

Программа юзает GUI как хочет (довольно стандартный подход -

программа навешивает на GUI калбеки и вызывает его функции).

 

это уже более сложный уровень.

(по использованию, какая от этого польза пока не понятно :)

Но многое имеет смысл поддерживать в целях совместимости...)

 

2. программа-сервер; GUI-клиент.

 

а вот тут заморочек еще больше!

 

Так обычно пишешь как хочешь, а тут если сервером

для стандартного готового приложения прикидываться надо

уже и обрабатывать его вызовы в его формате и идеологии...

Как говориться назвался груздь.. или точнее зацепил

готовое - приташил с ним и геморрой в комплекте :)))

 

Вот тут чем могла бы помоч библиотека - это предоставить

уже готовые шаблоны и заготовки для этих процедур...

 

 

GUI юзает программу как хочет (GUI-модуль навешивает на

программу калбеки и вызывает ее фунцкии)

 

GUI может и просто запускать процессы - если это гуй ОС.

 

(блин, как бы не пришлось описывать логику работы на обоих

сторонах - и гуя-процесса или либы, и клиента. Или отделить

гуй от процесса-логики и сделать это как бы еще одним

приложением?..)

 

Получается, для возможности использования разных GUI необходимо

программу ВСЕГДА строить по принципу СЕРВЕР?

 

 

разбить на несколько уровней по сложности использования/возможностям,

и нет проблем. Если все варианты продуманы заранее, то думаю и переход

между ними по мере роста сложности программы будет не сложен...

 

Причем возможно что по мере роста возможностей и сложности будет

расти и системо-зависимость...

 

Vladimir

 

-- Using Opera's revolutionary e-mail client: http://www.opera.com/m2/

Новое сообщение:
Страницы: 1

Чтобы оставить новое сообщение необходимо Зарегистрироваться и Войти