Вообще обсуждение уже принесло немало интересного, хотя постоянно норовит свалиься куда-то на низкий ...
Вообще обсуждение уже принесло немало интересного, хотя постоянно норовит свалиься куда-то на низкий уровень - в обсуждение шин сообщений и прочих API. А мы вообще-то еще требования к UI не сформулирвали.
Но вот
rainbow_beast просветил меня по поводу разницы между mind maps и concept maps.
Хотя я не уверен, что термин mind mapping не подходит, но все же в названии "Концептуальный интерфейс" что-то есть. Постмодерном попахивает.
На самом деле интерфейс должен быть в первую очередь
самообучающим. Не
самообучающимся хотя это тоже не повредит, а именно обучающим -
self-tutoring или
self-сouching. Причем обучать он должен в первую очередь именно конецпциям, лежащим в основе той или иной деятельности за компьютером.
Потому что компьютер это инструмент для множества очень разных задач, все из которых и не упомнишь. Постоянно приходится сталкиваться с вещами, которые несколько лет не делал и все забыл. Вот интерфейс и должен всячески помогать их вспомнить, если забыл, и узнать, если никогда не знал. Mind mapping с фокусом в примерно том же месте где и клавиатурный фокус оконной системы этому может очень неплохо помочь.
Еще интересный вопрос заключается в том, что у человека, сидящего за компьютером есть одновременно несколько контекстов с которыми он работает. Есть собственно компьютер со всем содержимым. Есть сессия, которая где-то больше компьютера - может включать в себя программы, запущенные на других компьютерах и подключенные к компьютеру разнообразные гаджеты, а в чем-то меньше - на компьютере могут одновременно работать несколько пользователей, а еще он всякими своими бэкграундными и серверными делами параллельно занимается.
Есть еще контекст текущей активности. Который тоже может выходить за пределы текущей сессии. Например активность "диалог в чате с другим человеком" явно захватывает кусочек сессии второго собеседника.
Со всеми этими контекстами человек более-менее легко справляется, если хотя бы один раз осознает их. Впрочем, в наше время по-моему ни один житель цивилизованных стран не думает, что в радиоприемнике сидят маленькие человечки, которые поют и разговаривают. Поэтому и общаясь через компьютер с другим человеком, он понимает что этот человек где-то сидит перед своим компьютером.
Вот с определением границ компьютера, сессии и клиент-серверных действий (например web-приложений) сложнее. Иногда даже и программисты не могут сразу сказать что у них выполняется сервер-сайд, а что - клиент-сайд. Хотя это крайне полезно понимать и пользователю хотя бы из соображений безопасности.
Кстати о безопасности, Систему следует планировать исходя из того, что любая из компонент может содержать если не злонамеренный код, то опасные ошибки. И везде где возможно использовать разграничения доступа к памяти, ограничения доступа к файловой системе и т.д. В качестве образца мы имеем по крайней мере две модели - классическую модель Unix и неклассическую Android с контрактами приложений. Там, правда, очень плохо сделано разграничение доступа к файловой системе. Можно еще посмотреть на остерхутовскую модель из SafeTcl.
В общем, получается такая картина - имеются tiled окна. Их немного. Даже на современном экране много tiled окон не расположешь. У окон может иметься довольно широкая рамка, куда выводятся тем или иным способом связанные с основным содержимым окна штуковины. Например, меню - это частный случай набора ассоциирующихся с содержимым окна объектов - команд, которые к этому окну можно применить.
Вокруг области tiled окон имеется рамка экрана. Где показываются какие-то объекты, связанные с сессией в целом или компьютером в целом.
У окна четыре стороны и можно их закрепить за разными типами связей.
Возможно, стоит позаимствовать из Ashton Tate Framework концепцию "изнанки фрейма". Там на изнанке фрейма можно было писать скрипт, генерирующий содержимое фрейма. Здесь более логичным является наличие на изнанке пояснительного (гипер)текста про то что можно с этим фреймом делать. Скрипт там тоже может быть, на то еcть literate programming.
Вообще хочется подложить под это какую-то ассоциативную файловую систему, объединяющую преимущества иерархической и реляционной модели, чтобы связи, скажем файла определенного типа с его возможными обработчиками были видны. Но, возможно, это следует делать уровнем выше.
Идеями Раскина насчет полностью modeless интерфейса злоупотреблять не стоит. Смена взгляда на один и тот же информационный объект иногда вполне оправдана. Но только надо оформить смену режима как переход по ссылке в concepts map. Вот до сих пор это у нас был текст, который мы набирали, и ассоциировался он с набором инструментов для работы с содержимым, а сейчас это стал верстаемый документ, и набор инструментов стал совсем другой.
This entry was originally posted at http://vitus-wagner.dreamwidth.org/765301.html. Please comment there using OpenID. Now there are comments
Итоги предыдущей дискуссии показали что наиболее близок к желаемому идеалу Emacs, умеющий работать ...
Итоги предыдущей дискуссии показали что наиболее близок к желаемому идеалу Emacs, умеющий работать не только с текстом и самостоятельно пишущий себе конфиги, адаптируясь под конкретного пользователя.
Вообще-то программу которая сама пишет ну не то чтобы конфиги, но скрипты, быстро и без лишних движений воспроизводящие результат, к которому пользователь долго шёд методом проб и ошибок, я писал еще в 1994 году.
А фактически современником Emacs, но умеющим работать и с форматированным текстом, и с графикой - была Oberon-среда Вирта. Интересно почему крокодил-Emacs, родственник динозавров-лисп-машин - выжил, а Оберон - нет.
Возможно, дело в том, что Вирт недооценил небходимость высокоуровневого языка, уровня юниксового шелла. Лисп-то может использоваться и как низкоуровневый, и как высокоуровневый, а Оберон-2 это дальнейшее развитие Паскаля, то есть примерно уровень С. Даже не современного С++.
Хотя, может быть, просто у Оберона не нашлось своего Столлмана или Филлипа Кана. Энтузиаста, который бы довел академический proof of concept до уровня продукта, как сделал Кан с турбо-паскалем.
This entry was originally posted at http://vitus-wagner.dreamwidth.org/763721.html. Please comment there using OpenID. Now there are comments
Тут чего-то в мире пользовательских интерфейсов, который казалось на десятилетия застыл в парадигме ...
Тут чего-то в мире пользовательских интерфейсов, который казалось на десятилетия застыл в парадигме CUA, в связи с появлением планшетов наметилось какое-то шевеление.
В связи с этим возникают мысли про то, как в принципе может пойти развитие интерфейсов на более традиционных устройств. Некоторое время назад я описал в "Детях пространства" как Карл Кроппкэ обучается работе со спейсианским ноутбуком.
Принципиальны там следующие вещи
1. Интерфейс неинтуитивный, он требует обучения. И несмотря на то что Лада прекрасно знает что Карл - образованный и весьма квалифицированный программист, она заставляет его пройти интерактивный обучающий курс.
Что курс там оказывается весьма хорошо написан - отдельный вопрос. Вот чего-чего а concept manual-ов современным интерфейсным нововведениями вроде мультитача явно не хватает.
2. В качестве отцов основателей чьи идеи были использованы в этом интерфейсе упоминаются Раскин, Вирт и Бузен.
При этом кнопка Jump на клавиатуре есть. Но испольузется не как у Раскина, а скорее как Meta в Unix или Command в MacOs. То есть не сама по себе а в сочетании с чем-то ещё. (это по поводу Раскина). У Вирта из Оберона по-моему можно позаимствовать ровно две вещи - tiled window management (который сейчас весьма популятен среди профессионалов) и выполнение команды, написанной в любом месте на экране одним кликом. Вот притащить в интерфейсы идеи Бузена, то есть Mind Mapping - штука нетривиальная.
В принципе, гипертекст со ссылками весьма близок к mind mapping, так что возможно, развитие html5-based интерфейсов туда и приведет. Но mind mapping это в первую очередь система быстрого и удобного редактирования связей между объектами.
Идеи Раскина о сплошном поиске в интернете более-менее реализованы усилиями гугля. Впрочем, идея reinventing the command line с возможностью указания поискового запроса вместок команды есть по-моему в Unity.
Кстати была еще идея экрана как бесконечного параболоида, автора которой я, к сожалению не вспомнил. Но можно считать что мой персонаж её тоже не вспомнил. То есть когда окно удаляется из фокуса внимания, оно уменьшается. И чем ближе к краю экрана, тем сильнее. Это в общем-то естественно стыкуется с mind map-ом. Окна, находящиеся на расстоянии одной ассоциации от текущего показываются уменьшенными, но так, что даже текст при желании читаем, на расстоянии двух - уже почти иконки и так далее.
И я совершенно зря не упоминул Негропонте с "активностями". Потому что далеко не все окна на экране являются именно "объектами", "документами" - статичными сущностями, которые могут измениться только по инициативе пользователя. Есть логи, чаты и тому подобные вещи, которые меняются "самопроизвольно" с точки зрения данного пользователя.
Еще интересно, что в современном мире уже приходится учитывать физическое положение устройства. То есть текущий контекст пользователя может включать не только то, что в компьютере, но и то, что вокруг него. Кстати я давно говорил, что концепция пользовательской сессии должна включать в себя не только клавиатуру, мышь и экран, но и устройства ввода-вывода звука, видеокамеру, и всякие разные гаджеты, которые пользователю может захотеться достать из кармана. Причем очевидно что в нашем мире "съемный носитель данных" уже не обязательно основная функция такого гаджета.
В общем мне кажется что идея пообсуждать каким может быть пользовательский интерфейс, если его оптимизировать не на привлекательность для покупателя, а на удобство и эффективность для человека, не поленившегося потратить довольно небольшое время на обучение, и оптимизировать более менее системно - довольно интересна.
This entry was originally posted at http://vitus-wagner.dreamwidth.org/763179.html. Please comment there using OpenID. Now there are comments
Snapdragon S4 стал настоящим хитом на рынке, поскольку двухядерный чип обладает высокой ...