Концепция GUI - централизованная или децентрализованная - PullRequest
2 голосов
/ 09 апреля 2010

Уже несколько месяцев я изучаю Erlang, и теперь пришло время заняться базовым GUI.

После небольшого исследования я обнаружил интересную библиотеку wxi (основанную на Fudgets).Haskell), который использует другой подход к GUI.Нет центрального цикла, каждый виджет обрабатывает свои собственные события и обрабатывает свои собственные данные.

Что вы, ребята, думаете об этом?Похоже, что это может быть эффективно на таких языках, как Эрланг, и это интересный подход.

Уильям ван Доорн

1 Ответ

2 голосов
/ 09 апреля 2010

В обычных приложениях процесс (или поток, если вы хотите быть разборчивым) владеет состоянием пользовательского интерфейса и обрабатывает события через цикл обработки сообщений. Поскольку процессы Эрланга чрезвычайно легки, подход wxi является очень логичным и естественным продолжением обычной модели.

Этот подход имеет важные последствия для пользовательского интерфейса и дизайна приложения. Например, сложный элемент управления диспетчера загрузки, который имеет анимацию, ввод-вывод и т. Д., Может быть объединен как полностью независимый процесс (с подпроцессами, обрабатывающими его компоненты пользовательского интерфейса), который взаимодействует с родительским пользовательским интерфейсом посредством передачи сообщений. Такой элемент управления может даже выйти из строя из-за проблемы с подключением или внутренней ошибки, а родительский элемент управления, выступающий в роли супервизора, будет указывать на возникшую ошибку и просто запустит новую копию элемента управления.

...