Создать тему  Создать ответ 
GUI — зло
31-08-2013, 17:15    
Сообщение: #1
Python

Senior Member
Сообщений: 462
Зарегистрирован: 11.07.12

GUI — зло
скайпочат писал(а):[27.08.2013 21:33:47] Quasus: Гуи - вообще глупость

[28.08.2013 12:12:30] Agrest says: -много

Хорошо продуманный гуй — это благо. Проблема в том, что хорошо продуманных днём с огнём.

[29.08.2013 20:34:40] Python says: ГУИ — зло, если его используют там, где без ГУИ можно обойтись. ГУИ, в отличие от консольников, не подлежит автоматизации и взаимодействию с другими ГУИ — это конечное изделие, работающее исключительно с конечным пользователем, который будет обязан 200 раз нажать одну и ту же кнопку, если ему нужно будет сделать 200 однотипных действий. Так что ГУИ нужно в большинстве случаев либо дублировать консольником, либо не делать ГУИ вообще. Речь не идет о браузерах, текстовых и графических редакторах и т.д.
[29.08.2013 22:20:13] arseniiv says: ну, редакторам тоже нужна автоматизация
[29.08.2013 22:20:30 | Edited 22:20:37] arseniiv says: просто на уровне программы целиком она уже невозможна. Только включать скрипты внутрь
[29.08.2013 22:45:12] Python says: было бы неплохо не изобретать каждый раз свой скриптовелосипед, а делать редакторы с разъемами под стандартный потоковый интерфейс.

[30.08.2013 11:28:36] Agrest says:
Цитата: [29.08.2013 20:34:08] Python: ГУИ — зло, если его используют там, где без ГУИ можно обойтись
Не согласен.

Цитата:[29.08.2013 20:34:08] Python: ГУИ, в отличие от консольников, не подлежит автоматизации
Неверно. То, что в Windows GUI кривой, ещё не значит...

Цитата: работающее исключительно с конечным
пользователем, который будет обязан
200 раз нажать одну и ту же кнопку,
если ему нужно будет сделать
200 однотипных действий
Ну как минимум в стандартной поставке Яблок есть программа для автоматизации таких действий.


Цитата: не изобретать каждый раз
 свой скриптовелосипед
+100500

Цитата: под стандартный потоковый интерфейс
Не обязательно строковый. В ЛиспоОС это будет лисповый интерфейс какой-нибудь.

Цитата:[30.08.2013 14:37:21] arseniiv says: [1:44:42] Python: было бы неплохо не изобретать каждый раз свой скриптовелосипед, а делать редакторы с разъемами под стандартный потоковый интерфейс.
мне кажется, из-за подобного изобрели чудовище COM

[30.08.2013 23:27:22] Python says:
Цитата:
Цитата: Python: ГУИ, в отличие от консольников, не подлежит автоматизации
Неверно. То, что в Windows GUI кривой, ещё не значит...
Этого достаточно, чтобы механизм автоматизации ГУИ был платформозависимым. Что не есть хорошо
[30.08.2013 23:28:46] Python says: Мне кажется оптимальным путь, когда основная часть программы делается как консольник (который можно запустить самостоятельно), а ГУИ строится как обертка к нему.

[13:30:16] Agrest says:
Цитата:Этого достаточно, чтобы механизм  автоматизации ГУИ был платформозависимым.  Что не есть хорошо
Совместимость не нужна.
[14:24:12] Agrest says: Вполне очевидно, что программы для разных систем должны отличаться.
[15:14:32] Python says: Вполне очевидно, что если половина задачи легче всего делается на маках, а вторая — на виндоус, то никто не станет покупать две машины и пытаться соединить их ГУИ
[15:15:48] Python says: даже вариант с симуляторами ОС кажется переутяжеленным

LF agent
Вебсайт Найти все сообщения
Цитировать это сообщение
31-08-2013, 22:15    
Сообщение: #2
Agrest

井蛙 / жабенєтко в керниці
Сообщений: 1556
Зарегистрирован: 08.08.12

RE: GUI — зло
(31-08-2013 17:15)Python писал(а):  [15:14:32] Python says: Вполне очевидно, что если половина задачи легче всего делается на маках, а вторая — на виндоус, то никто не станет покупать две машины и пытаться соединить их ГУИ
Это совершенно неочевидно. Более того, это неверно.

«билингв мусорит в обоих языках — и первом, и втором» © Python
Вебсайт Найти все сообщения
Цитировать это сообщение
31-08-2013, 22:27    
Сообщение: #3
Agrest

井蛙 / жабенєтко в керниці
Сообщений: 1556
Зарегистрирован: 08.08.12

RE: GUI — зло
(31-08-2013 17:15)Python писал(а):  Этого достаточно, чтобы механизм автоматизации ГУИ был платформозависимым. Что не есть хорошо
Кстати, это вовсе не обязательно.

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

«билингв мусорит в обоих языках — и первом, и втором» © Python
Вебсайт Найти все сообщения
Цитировать это сообщение
31-08-2013, 23:02    
Сообщение: #4
Python

Senior Member
Сообщений: 462
Зарегистрирован: 11.07.12

RE: GUI — зло
Чисто теоретически. ГУИ вообще не обязан использовать что-либо, кроме видеоадаптера, клавиатуры и мыши (или других манипуляторов). Использование средств ОС для стандартного отображения элементов интерфейса — не более чем дополнительное удобство (в системе может быть несколько GUI-библиотек, никак не связанных друг с другом; при желании, кнопки можно рисовать и непосредственно как картинки, а действие определять непосредственно по движениям мыши — это тоже будет GUI, пользователь сможет использовать «самодельные» кнопки и окна точно так же, как системные — возможно даже, не заметит разницы). Главный критерий работоспособного GUI — способность пользователя распознать тот  или иной элемент собственными глазами и, если нужно, взаимодействовать с ним стандартным способом, используя клавиатуру и/или мышь. Структура GUI не обязана быть в достаточной степени стандартизирована даже на уровне системных библиотек, программа не обязана предоставлять информацию о внутренней структуре ее графинтерфейса кому-либо еще. Это graphical USER interface — все остальное второстепенно.

А теперь поставим себя на место программы, пытающейся сделать то же, что делает человек, пользующийся GUI. Все, что она видит — графическое изображение экрана. У нее есть возможность двигать курсор мыши и имитировать клавиатурный ввод. Чтобы пользоваться чисто мышиным GUI, программа должна либо уметь распознавать образы кнопок (что уже на грани ИИ), либо ее программист должен жестко задавать координаты каждого клика (соответственно, если положение элементов GUI изменится, эмулятор пользователя будет жать не на ту кнопку или в пустое пространство). В общем, мне кажется, задача создания такой программы слегка переусложняется.

LF agent
Вебсайт Найти все сообщения
Цитировать это сообщение
07-09-2013, 12:57    
Сообщение: #5
Agrest

井蛙 / жабенєтко в керниці
Сообщений: 1556
Зарегистрирован: 08.08.12

RE: GUI — зло
Дуже цікавою ідеєю GUI мені здається ідея «гуманного користальницького інтерфейса» Джефа Раскіна, реалізацію якого було розпочато в проекті Archy. На жаль, сайт проекта вже не працює (і я не знаю, чи можна десь загрузити його), а для реалізації чогось подібного є перешкоди у вигляди патентів на ПЗ, але ідея тим не менше цікава.

«билингв мусорит в обоих языках — и первом, и втором» © Python
Вебсайт Найти все сообщения
Цитировать это сообщение
08-09-2013, 00:23    
Сообщение: #6
Python

Senior Member
Сообщений: 462
Зарегистрирован: 11.07.12

RE: GUI — зло
Цитата:«гуманного користувацького інтерфейса» Джефа Раскіна
Скачав книгу, намагаюсь вчитатись. В двох словах, про що там?

LF agent
Вебсайт Найти все сообщения
Цитировать это сообщение
08-09-2013, 01:31    
Сообщение: #7
Agrest

井蛙 / жабенєтко в керниці
Сообщений: 1556
Зарегистрирован: 08.08.12

RE: GUI — зло
Я розумію так:

Файлів не треба, замість файлів — безкінечна простора нескінченний простір (правда, документи таки відділяються). Назв файлів не треба, пошуку по змісту достатньо.

Весь інтерфейс немодальний, одні і ті самі дії користувача завжди приводять до тих же результатів. Ніяких окремих вікон, різних режимів і т.д.

Для виконання дій є клавіша «команда» (CapsLock), для пересування — клавіша «стрибок» (Shift).

Встановлення нової програми дає її інтерфейс у всій безкінечній просторі. У програми немає свого інтерфейсу, весь інтерфейс має бути доступний всюди.

Бескінечна Нескінчена відміна, збереження стану, нічого не можна викинути.



В чомусь такий інтерфейс складніший за стандартні програми, в чомусь простіший. Передбачається, що його легше вивчити та використовувати.

Offtop

Цитата:користувацького
Дякую.


«билингв мусорит в обоих языках — и первом, и втором» © Python
Вебсайт Найти все сообщения
Цитировать это сообщение
08-09-2013, 01:59    
Сообщение: #8
Python

Senior Member
Сообщений: 462
Зарегистрирован: 11.07.12

RE: GUI — зло
Грубо кажучи, все з усим інтегрується на рівні діалогів, які можна довільно комбінувати між собою? В принципі, ідея непогана — на початку свого знайомства з GUI я теж мріяв про щось подібне.

Втім, відмову від файлів не дуже розумію.
Offtop
безкінечна простора = нескінченний простір

LF agent
Вебсайт Найти все сообщения
Цитировать это сообщение
08-09-2013, 02:59    
Сообщение: #9
Agrest

井蛙 / жабенєтко в керниці
Сообщений: 1556
Зарегистрирован: 08.08.12

 
Попередження: те, що нижче, — моє розуміння. Я можу щось розуміти неправильно.

Та ніби й діалогів не має бути. Діалоги — це ж модальність.

Я уявляю собі приблизно так. Хочеш надіслати листа — просто допиши адресу і тему листа на початку документа (використовуючи стандартний механізм), а далі виклич команду «надіслати». (Можливо, для написання адреси буде якийсь спрощений механізм «вставити з адресної книги», але тоді він буде доступний в будь-якому місці тексту.)

Ну, тобто у всього уніфікований інтерфейс.

Це моє розуміння.

(08-09-2013 01:59)Python писал(а):  Втім, відмову від файлів не дуже розумію.
Файл — це є область пам’яті з а) іменем (та шляхом), б) окремим форматом, в) якимись метаданими, г) гарантією, що інформація не зітреться.

а) Ім’я служить для ідентифікації, але його дуже легко забути. Замість цього пропонується використовувати повнотекстовий пошук. Якщо потрібно дати документу назву, треба просто почати документ з цієї назви, а далі для переходу до нього просто затримати клавішу «стрибок» та ввести текст «<клавіша-маркер початку документа>назва».

Для навігації можна використовувати масштабований інтерфейс. Просто піднявся на рівень вище — і вже замість документів бачиш іх маленькі копії, де виведений початок тексту документу (який може бути заголовком). Хочеш згрупувати документи — просто розмісти їх поряд. Правда, в Archy масштабований інтерфейс так і не реалізували.

б) Замість окремого формату пропонується повна уніфікація всього. Навіть якщо щось зберігається в своєму форматі, користувачеві не треба про це знати.

Для користувача все повинне бути однаковим. Встановив графічний редактор — функція редагування графіки має бути доступна де завгодно, а не тільки в спеціально відведеній канві. Користувач не має знати про внутрішній формат і про те, що різні типи даних зберігаються по-різному.

в) Метадані потрібні не на рівні документу, а на будь-якому рівні. Щоб можна було дізнатися про дату останнього редагування не тільки документу, але й будь-якого абзацу.

г) Вся робота користувача має зберігатися, якщо користувач її не видалить явним чином.

Таким чином, файли непотрібні.

Offtop
Дякую за виправлення.

«билингв мусорит в обоих языках — и первом, и втором» © Python
Вебсайт Найти все сообщения
Цитировать это сообщение
17-12-2014, 05:03    
Сообщение: #10
Python

Senior Member
Сообщений: 462
Зарегистрирован: 11.07.12

RE: GUI — зло
Цитата:Користувач не має знати про внутрішній формат і про те, що різні типи даних зберігаються по-різному.
От ніколи не розумів переваг цієї концепції. Рано чи пізно відмінності форматів починають впливати на роботу, і виникає необхідність керувати ними вручну. Зробити це керування опціональним, використовувати варіант за замовчуванням — так, це зручно, але для випадку, коли це призводить до неможливості коректно працювати з даними, потрібен і більш низькорівневий доступ.

Щодо описаної вище загальної концепції. Наскільки вона поєднується з модним у наш час патерном Model-View-Controller? Чи не надто тісна прив'язка логіки поведінки документів до конкретної реалізації інтерфейсу?

LF agent
Вебсайт Найти все сообщения
Цитировать это сообщение
Создать ответ 


Переход:


Пользователи просматривают эту тему: 1 Гость(ей)