vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner
Тут чего-то в мире пользовательских интерфейсов, который казалось на десятилетия застыл в парадигме 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-ом. Окна, находящиеся на расстоянии одной ассоциации от текущего показываются уменьшенными, но так, что даже текст при желании читаем, на расстоянии двух - уже почти иконки и так далее.

И я совершенно зря не упоминул Негропонте с "активностями". Потому что далеко не все окна на экране являются именно "объектами", "документами" - статичными сущностями, которые могут измениться только по инициативе пользователя. Есть логи, чаты и тому подобные вещи, которые меняются "самопроизвольно" с точки зрения данного пользователя.

Еще интересно, что в современном мире уже приходится учитывать физическое положение устройства. То есть текущий контекст пользователя может включать не только то, что в компьютере, но и то, что вокруг него. Кстати я давно говорил, что концепция пользовательской сессии должна включать в себя не только клавиатуру, мышь и экран, но и устройства ввода-вывода звука, видеокамеру, и всякие разные гаджеты, которые пользователю может захотеться достать из кармана. Причем очевидно что в нашем мире "съемный носитель данных" уже не обязательно основная функция такого гаджета.

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

Date: 2012-08-09 03:58 pm (UTC)
wizzard: (Default)
From: [personal profile] wizzard
> То есть когда окно удаляется из фокуса внимания, оно уменьшается. И чем ближе к краю экрана, тем сильнее

Слава богу, highres экраны пошли в массы. Потому что плавный зум, если у нас линии толщиной 1 пиксель, а не 2 - сделать нельзя.

Date: 2012-08-09 04:10 pm (UTC)
wizzard: (Default)
From: [personal profile] wizzard
Под словом "плавный зум" я не имел в виду "анимированный", а имел в виду "произвольный".

Date: 2012-08-09 06:47 pm (UTC)
stiv_sigmal: (Default)
From: [personal profile] stiv_sigmal
При прочих равных приятней работать с красивым интерфейсом. Что касается анимации интерфейса, я, например, ОЧЕНЬ НЕ люблю, когда интерфейс что-то делает медленней меня, но ничего не имею против анимированных переключений, если анимация длится, скажем, пару сотен миллисекунд. Это и некая «имитация» реального мира, где далеко не всё происходит мгновенно (к вопросу об интуитивности, например), и дополнительная информация (скажем, пользователь видит, в каком направлении произошло переключение, или что там ещё можно закодировать в эту анимацию).
Последнее, кстати, можно использовать в учебных курсах по управлению интерфейсом))

(no subject)

From: [personal profile] slobin - Date: 2012-08-09 09:58 pm (UTC) - Expand

Date: 2012-08-09 06:13 pm (UTC)
toman_k: (Default)
From: [personal profile] toman_k
> Потому что плавный зум, если у нас линии толщиной 1 пиксель, а не 2 - сделать нельзя.

Трать-тать-тарарать! - привычно отозвалось эхо. Возможность сделать плавный зум не зависит от того, какой толщины линии (величины пятна). Линии (пятна) вообще не обязаны иметь целочисленную толщину. На игнорировании этого здорово погорели многие создатели графики для трёхмерных игр, например, MS Train Simulator, в который я в своё время пытался играть, но забросил из-за принципиальной неизлечимости многих глупостей. В частности, они в масштабировали огни светофоров только до целочисленных величин, в результате чего стабильная видимость появляется только на примерно 200-300 м, но отдельные проблески в зависимости от попадания на решётку пикселов могут быть и с километра. Сие смотрится ужасно, и приводит к полной невозможности играть, воспринимая сигналы зрительно из трёхмерного вида, а не вспомогательного "костыльного" окошка-помощника.
Так вот, всей этой порнографии можно было бы избежать, если бы товарищи масштабировали эти объекты до нецелочисленных размеров. В принципе, это то же самое, что антиалиасинг, и во всех более-менее современных графических средствах антиалиасинг (а следовательно, и корректное масштабирование до любых дробных размеров) давно уже применяются. Другой вопрос, что нельзя ожидать читаемости, если всё отмасштабировано до размеров в разы меньше пиксела. Но конкретный масштаб - это уже несколько другой вопрос, чем плавность.

Date: 2012-08-09 07:01 pm (UTC)
From: [identity profile] mynine.livejournal.com
Что-то мне сомнительно что MS умудрились так лажануться с масштабированием. Или это ооочень давно было? не во времена 16-ти битной графики, когда масштабирование было возможно только с точностью до пикселя?
Но возмущение я понимаю, мне приходилось как-то возиться с графикой и очень много нахлебался, например, с такой штукой как функция отрисовки линии с антиалайзингом, в которую передаются целочисленные координаты точек! Нарисовать плавное движение стрелки прибора в данном случае оказалось невозможным.

(no subject)

From: [personal profile] wizzard - Date: 2012-08-09 07:23 pm (UTC) - Expand

(no subject)

From: [personal profile] toman_k - Date: 2012-08-09 08:44 pm (UTC) - Expand

Date: 2012-08-09 07:20 pm (UTC)
wizzard: (Default)
From: [personal profile] wizzard
> Возможность сделать плавный зум не зависит от того, какой толщины линии (величины пятна). Линии (пятна) вообще не обязаны иметь целочисленную толщину.
> На игнорировании этого здорово погорели многие создатели графики для трёхмерных игр, например, MS Train Simulator, в который я в своё время пытался играть, но забросил из-за принципиальной неизлечимости многих глупостей. В частности, они в масштабировали огни светофоров только до целочисленных величин, в результате чего стабильная видимость появляется только на примерно 200-300 м, но отдельные проблески в зависимости от попадания на решётку пикселов могут быть и с километра.

Так. Я не обязан пересказывать сейчас всю теорию, которую знаю. Ключевые слова: gamma-correct antialiasing, hdr rendering, temporal aliasing, blooming, и вообще весь блог Timothy Lottes из nVIDIA.

Короче, со светофорами (я тоже фанат MSTS) проблема в том, что яркость пятна светофора в сотни раз больше окружающего ландшафта, и без HDR физически корректно его отрисовать нельзя, пусть там хоть 256xMSAA.

Та же фигня с рендерингом звезд и искр (но на них все ложат болт, т.к. они не влияют на игровую ситуацию)

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

Чтобы этого не было, любой сигнал с частотой выше 1 периода на 2^sqrt(2) пикселя нужно срезать нафик (==блурить). А чтобы текст и вообще картинка от этого не превращался в говно - нужен 2x запас по разрешению.

Это знают все телевизионщики, киношники, разработчики игр для приставок (особенно до появления HDTV), разработчики видеокодеков и т.д. Именно поэтому шрифт в титрах такой крупный, а видео (за исключением снятого с экрана) такое, на первый взгляд, "блюренное".

Вот, собственно, и весь сказ.
Edited (опечатку пофиксил) Date: 2012-08-09 07:22 pm (UTC)

(no subject)

From: [personal profile] toman_k - Date: 2012-08-09 08:16 pm (UTC) - Expand

(no subject)

From: [personal profile] wizzard - Date: 2012-08-09 09:00 pm (UTC) - Expand

(no subject)

From: [personal profile] toman_k - Date: 2012-08-11 12:45 am (UTC) - Expand

(no subject)

From: [personal profile] wizzard - Date: 2012-08-11 11:11 am (UTC) - Expand

Date: 2012-08-09 04:40 pm (UTC)
From: [identity profile] mynine.livejournal.com
Мне кажется спорной мысль, что будет пользоваться большим спросом интерфейс, которому обязательно надо будет учиться. Так ли много людей знает хотя бы все хоткеи своих программ ? (кроме Ctrl-C,V,X)

А можно вспомнить такую штуку как vi(m), интуитивный интерфейс, последнее что можно про него сказать :), тем не менее, как говорят, после изучения это одно из самых эффективных средств редактирования текстов. (Сам-то я только основные функции помню :()

Date: 2012-08-09 07:04 pm (UTC)
From: [identity profile] mynine.livejournal.com
Спрос, да не очень верное слово. Скорее что-то вроде реального интереса к использованию.

И да, научиться ясно мыслить, это было необходимо, но очень тяжело научиться.

Date: 2012-08-09 07:35 pm (UTC)
ext_646638: (Default)
From: [identity profile] rdia.livejournal.com
На ноутах (где экран мелкий, есть клавиатура и практически нет мыши), Vim-подобный интерфейс исключительно удобен. Правда необходимо уметь печатать вслепую. То есть, берёте i3, Firefox/Vimperator/pentadactyl и натурально наслаждаетесь скоростью. Тачпад при этом просто пылится.

Кстати, меня удивляет один момент в эргономике - сейчас людей, у которых одна раскладка, не так уж и много в процентном соотношении. А клавиатуры до сих пор делают без клавиши РУС/ЛАТ.

(no subject)

From: [personal profile] toman_k - Date: 2012-08-09 09:01 pm (UTC) - Expand

(no subject)

From: [personal profile] gix - Date: 2012-08-09 09:17 pm (UTC) - Expand

(no subject)

From: [identity profile] rdia.livejournal.com - Date: 2012-08-09 09:23 pm (UTC) - Expand

(no subject)

From: [personal profile] slobin - Date: 2012-08-09 09:49 pm (UTC) - Expand

(no subject)

From: [identity profile] gegmopo4.livejournal.com - Date: 2012-08-10 03:34 pm (UTC) - Expand

(no subject)

From: [personal profile] slobin - Date: 2012-08-10 03:48 pm (UTC) - Expand

(no subject)

From: [identity profile] gegmopo4.livejournal.com - Date: 2012-08-10 05:26 pm (UTC) - Expand

(no subject)

From: [identity profile] rdia.livejournal.com - Date: 2012-08-11 07:44 am (UTC) - Expand

(no subject)

From: [identity profile] warmland.ru - Date: 2012-08-12 03:25 pm (UTC) - Expand

(no subject)

From: [personal profile] alexkuklin - Date: 2012-08-11 02:39 pm (UTC) - Expand

(no subject)

From: [personal profile] slobin - Date: 2012-08-11 05:15 pm (UTC) - Expand

(no subject)

From: [identity profile] edo-rus.livejournal.com - Date: 2012-08-13 08:12 pm (UTC) - Expand

(no subject)

From: [personal profile] slobin - Date: 2012-08-14 10:30 am (UTC) - Expand

(no subject)

From: [identity profile] gegmopo4.livejournal.com - Date: 2012-08-10 02:06 pm (UTC) - Expand

(no subject)

From: [personal profile] toman_k - Date: 2012-08-11 12:50 am (UTC) - Expand

(no subject)

From: [personal profile] shadowfoto - Date: 2012-08-11 07:43 am (UTC) - Expand

(no subject)

From: [identity profile] gegmopo4.livejournal.com - Date: 2012-08-11 08:19 am (UTC) - Expand

(no subject)

From: [identity profile] rdia.livejournal.com - Date: 2012-08-11 07:31 am (UTC) - Expand

(no subject)

From: [personal profile] shadowfoto - Date: 2012-08-11 07:49 am (UTC) - Expand

(no subject)

From: [identity profile] commentarius.blogspot.com - Date: 2012-08-14 11:18 am (UTC) - Expand

(no subject)

From: [identity profile] commentarius.blogspot.com - Date: 2012-08-14 12:19 pm (UTC) - Expand

(no subject)

From: [identity profile] edo-rus.livejournal.com - Date: 2012-08-13 08:18 pm (UTC) - Expand

Date: 2012-08-09 08:18 pm (UTC)
From: [identity profile] absurdated.livejournal.com
Если пользуешься одним и тем же инструментом, постепенно выучиваешь разные вещи, в любом случае. Что может иметь и негативный эффект при резкой смене инструмента, кстати: я сейчас невольно работаю 50/50 Mac/Windows, и местами раздражает это яблочко неимоверно.

Но беда ещё, как мне кажется, в том, что быстрее, чем у тебя мысли появляются, их всё одно не выразишь. То есть, чтобы получать заметную выгоду от освоения иного интерфейса/метода (TeX, vim, слепой печати, телепатического интерфейса, etc.), нужно самому находиться на довольно высоком уровне, когда простой вариант начинает мешать. Что для изрядной части пользователей, натурально, не выполняется.

Date: 2012-08-09 09:07 pm (UTC)
toman_k: (Default)
From: [personal profile] toman_k
Кстати, насчёт выражения мысли - это в первую очередь зависит от того языка, на котором пишешь. Если пишешь на человеческом языке - то, допустим, чем больше в нём элементов избыточности, тем больше затраты времени на сборку грамматически верного предложения, и - особенно - на переформулирование оного немножко другими словами, если первая попытка оказалась неудачной. В этом случае слишком быстрый набор текста может оказаться даже невыгоден: человек, набирающий (та же слепая печать, например) со скоростью быстрее, чем формулирует предложение, сам себя загоняет в ловушку и оказывается вынужден переформулировать предложение на очень плохо приспособленном к этому языке. Конечно, лучше владеть средствами для быстрого набора, но сознательно контролировать себя, и дожидаться мысленной сборки готового предложения, прежде чем набирать :)

(no subject)

From: [identity profile] absurdated.livejournal.com - Date: 2012-08-10 06:28 am (UTC) - Expand

(no subject)

From: [identity profile] absurdated.livejournal.com - Date: 2012-08-10 11:56 am (UTC) - Expand

(no subject)

From: [personal profile] slobin - Date: 2012-08-14 11:12 am (UTC) - Expand

(no subject)

From: [personal profile] slobin - Date: 2012-08-14 11:35 am (UTC) - Expand

Date: 2012-08-09 05:11 pm (UTC)
From: [identity profile] edo-rus.livejournal.com
В общем мне кажется что идея пообсуждать каким может быть пользовательский интерфейс, если его оптимизировать не на привлекательность для покупателя, а на удобство и эффективность для человека, не поленившегося потратить довольно небольшое время на обучение, и оптимизировать более менее системно - довольно интересна.

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

(no subject)

From: [personal profile] filin - Date: 2012-08-09 06:00 pm (UTC) - Expand

(no subject)

From: [identity profile] mithraen.livejournal.com - Date: 2012-08-09 09:00 pm (UTC) - Expand

Date: 2012-08-09 08:21 pm (UTC)
From: [identity profile] os80.livejournal.com
>а на удобство и эффективность для человека, не поленившегося потратить довольно небольшое время на обучение

Проблема подхода в том, что его адепты считают "довольно небольшим временем" месяц. Извините, в хозяйстве современного человека как-то более, чем 12*80 разных предметов.

Вторая проблема, видимо, в том, что Вы из тех людей, которые на гитаре научаются играть за 2 недели, печатать вслепую - за неделю, а водить автомобиль - за 4 дня. Но лично у меня ушло, соответственно, 1 год, 5 месяцев и месяца 2. Т.е. то, что Вы сделаете для "не поленившегося" мне времени не сэкономит и оптимальная для меня стратегия - лениться.

Date: 2012-08-09 08:51 pm (UTC)
stiv_sigmal: (Default)
From: [personal profile] stiv_sigmal
Насчёт 12*80 предметов, далеко не все из них требуют месячного обучения и далеко не все нужны каждому.

С разной обучаемостью отчасти согласен, сам не считаю себя гением, но обычно learning curve выглядит так: какое-то время оочень пологая, затуп, пока не врубился. Дальше довольно резкий скачок вверх, который становится всё более пологим. Т.е. нужно всего лишь проскочить начальный этап и дойти до какого-то минимально-приемлемого уровня, а дальше дело практики.
Поясню мысль. Что глядя на клавиатуру я первый месяц-другой медленно печатал без эффективного обучения, что вслепую я за месяц первичный затуп проскочил бы. А при условии целенаправленного обучения — за неделю. И дальше в любом случае эффективность была бы не ниже, а выше. Да, иногда эффективней лениться и пользоваться интерфейсами для чайников, но не всё так страшно.

Date: 2012-08-09 08:58 pm (UTC)
From: [identity profile] mithraen.livejournal.com
1. Я сходу не могу придумать интуитивных интерфейсов, кроме разве что в некоторых простейших приложениях.

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

1.1. Для пользователей привыкших к разным концепциям понятие "очевидности" очень сильно отличается. Когда я вынужденно оказываюсь за машиной с виндой -- я теряюсь. И часто люди с несравнимо меньшем опытом удивленно показывают мне куда тыкать. Для них это очевидно.

Ровно также как для любого линукс-пользователя, совершенно очевидно впервые столкнувшись с новой программой первым делом набрать man . А в случае (о ужас!) его отсутствия -- запустить с опцией --help.

Вполне опытный программист, работавший до этого только в одной из нынешних распространенных систем (Linux, Windows, MacOS) будет вынужден либо читать документацию, либо обращаться с вопросами к коллегам.

2. По mind mapping -- я такую попытку видел чуть ли не лет 10 назад. Программа 'the brain', как органайзер заметок. Увы, win-only.

Сейчас, я смотрю очередной бум использования mind mapping -- например я уже сталкивался с тем, что от меня заказчик просит прислать ему какую-либо информацию в виде mindmap. Когда эта концепция станет совсем привычной, начнут делать и интерфейсы на этом принципе.

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

Хороший образ, мне кажется, как раз именно emacs. У которого главный недостаток -- дефолтные конфиги ужасны, и его невозможно использовать без напильника.

Главная проблема интерфейсов сейчас -- не обучение, а переучивание. Если ребенок впервые сталкивается с текстовым редактором, то разницы между Emacs и Word для него в сложности обучения никакой нет. Вот между vim и word -- есть (нужно понять концепцию command mode/insert mode).

(no subject)

From: [personal profile] hungry_ewok - Date: 2012-08-10 10:03 am (UTC) - Expand

(no subject)

From: [personal profile] hungry_ewok - Date: 2012-08-10 12:06 pm (UTC) - Expand

(no subject)

From: [identity profile] edo-rus.livejournal.com - Date: 2012-08-13 08:08 pm (UTC) - Expand

(no subject)

From: [identity profile] mithraen.livejournal.com - Date: 2012-08-10 02:51 pm (UTC) - Expand

(no subject)

From: [personal profile] slobin - Date: 2012-08-10 03:57 pm (UTC) - Expand

(no subject)

From: [personal profile] hungry_ewok - Date: 2012-08-10 06:51 pm (UTC) - Expand

(no subject)

From: [identity profile] mithraen.livejournal.com - Date: 2012-08-12 09:35 pm (UTC) - Expand

Date: 2012-08-12 09:08 pm (UTC)
From: [identity profile] rainbow_beast.livejournal.com
The Brain - это НЕ mindmap. Это Concept mapping tool - в данном случае это принципиально. У майндмапа центр, у концептмапа - центра нет, это просто граф. Для компьютерной активности майндмап подходит не особо, а вот концеп-мап, (он же гипертекст, кстати) - да, может и выстрелить. А может и нет - если мне проще сущность выдернуть по имени а не по ссылке.

(no subject)

From: [identity profile] mithraen.livejournal.com - Date: 2012-08-12 09:21 pm (UTC) - Expand

(no subject)

From: [identity profile] rainbow_beast.livejournal.com - Date: 2012-08-12 10:02 pm (UTC) - Expand

Date: 2012-08-12 09:18 pm (UTC)
From: [identity profile] rainbow_beast.livejournal.com
Кстати, современные примитивы вида "даблклик", "драгндроп", нажатия нескольких клавиш на клавиатуре одновременно - это такая форма утончённого издевательства над пользователем, что бы не пел Раскин - это чисто физически неудобные действия, сильно завиясящие от качества устрйоства ввода. И если уж проектировать заведомо не интуитивный интерфейс надо эту чушь выкинуть к чертям, заменив на более приличные общие концепции - нормально реализованный буфер вместо драгндропа, emacs-like модификаторы вместо обычныхъ и двойного клика... Да, это потребует вменяемой реализации индикации текущего состояния - но имеем много более богатые возможности взаимодействия и менее усталые руки.

Вообще "щупательные" интерфейсы при всей их псевдоинтуитивности вне вещественной среды очень редко толком работают - наскидку мне только мультитачевое растягивание картинок вспоминается. "Словесные" команды гораздо интереснее в этом плане. Другое дело, что набор команд должен иметь несколько более логичный, чем в emacs (в котором у меня уже раза три опускались руки при попытках как-то разумно установить хоткеи).

(no subject)

From: [identity profile] mithraen.livejournal.com - Date: 2012-08-12 09:31 pm (UTC) - Expand

(no subject)

From: [identity profile] rainbow_beast.livejournal.com - Date: 2012-08-12 10:15 pm (UTC) - Expand

(no subject)

From: [identity profile] mithraen.livejournal.com - Date: 2012-08-13 12:27 am (UTC) - Expand

(no subject)

From: [personal profile] slobin - Date: 2012-08-14 10:57 am (UTC) - Expand

(no subject)

From: [personal profile] slobin - Date: 2012-08-14 11:25 am (UTC) - Expand

(no subject)

From: [identity profile] rainbow_beast.livejournal.com - Date: 2012-08-13 09:13 am (UTC) - Expand

(no subject)

From: [identity profile] rainbow_beast.livejournal.com - Date: 2012-08-13 09:40 am (UTC) - Expand

(no subject)

From: [personal profile] mc6312 - Date: 2012-08-14 09:19 am (UTC) - Expand

(no subject)

From: [identity profile] legolegs.ya.ru - Date: 2012-08-19 05:43 pm (UTC) - Expand

Date: 2012-08-12 09:59 pm (UTC)
From: [identity profile] rainbow_beast.livejournal.com
Здесь надо начинать с построения общей концепции, как мне кажется. Берём пачку деятельностей, которые производит человек на компьютере, выделяем "похожие" группы, формируем примитивы взаимодействия, а потом уже думаем, как это может выглядеть и какая форма шевеления ручками или ножками для этого нужна. Причём - если отбросить ориентацию на дураков и подразумевать, что хотя бы какой-то вводный курс будет пройден - начинать надо именно с концептуальной модели деятельности. И именно концеепция должна торчать со всех сторон из интерфейса - допустим, если у нас есть текстовый документ - это его структура должна быть видна постоянно, подразумеваться при действиях и т.д. Скорее всего для многих областей это будет некая древовидная иерархия ("документ - раздел - абзац - предложение - слово - символ", допустим), какой-то уровень будет дефолтным, для работы с отслаьными в номре нужны будут команды "расширения/сужения области" или явного выбора. Понятно, что для часто используемых случаев возможны сокращения - но стандартный путь должен быть всегда доступным и всегда одним и тем же. Впрочем, это только один пришедший в голову пример использования стуктуры.

Второе - изоморфизм интерфейсов. Елси у нас есть "тыкательный", командный и "хоткейный" интерфейсы - любая возможность: а) должна быть доступна в любом из них (для хоткейного - должна быть возможность задания хоткея), б) должен быть легкий и стандартный способ посмотреть соответствие - "как это сделать мышью" и "какую команду я запустил хоткеем" в) разумеется, это всё должно быть программно доступно стандартным образом

Третье - принципиальное - мы, понятное дело, даём механизм - но нужно дать(очень) хорошую дефолтную policy. И здесь всё становится интересным, так как для сколько-нибудь сложной системы я боюсь представить, каков будет объём работы для формирования этой самой policy. Поэтому - именно как базовое требование к такой системе - нужно сразу вкручивать механизм коллаборации - обмена настройками, их комбинирования и т.д - с минимальной морокой для пользователя. Тогда сообща можно будет выработать какие-то разумные пресеты. Кстати, необходимое требование для этого - невозможность притащить в систему неэффектиыне "стандарты" из уже существующего софта. Из этого, кстати, следует неоходимость ведином стандарте конфигов, который можно мержить/делить, обрабатывать автоматическими средствами т.д. При этом никто не мешает ему оставаться текстовым - но вот структурным стать придётся. И иметь метаинформацию a-la DTD или схему - тоже.

Четвёртое - сквозная документируемость. Если мы хотим,чтобы люди сопользовали возможности - они должны быть в состоянии найти их и понять,что это. В помянутых мной выше "DTD" к конфигам документация к отдельным настройкам должна быть вбита настолько, чтобы этим легче было пользоваться, чем не пользоваться. Для любой функции софта - справка опять-таки должна вызываться стандратным образом - ну это очевидно, хотя от man пора уходить к гипертексту как минимум. Вообще - документируемость надо поддреживать, конечно, административно - силами команды, развивающей систему.

Пятое. Компонентность. Витусу не понравится, пожалуй... Любой софт реализует явно опсианный интерфейс (собственно, документируется именно он). И в норме сторонний софт не интересуется конкретной реализацией интерфейса. Хочешь плеер - на тебе плеер. Какой- не прицнипально. А вот "плеер, поддерживающий проигрывание сетевых потоков" - это уже более широкий интерфейс - в общем, тут стоит с COM драть - аккуратно, конечно.

Взаимодейтсвует всё это по шине. Которая идёт через диспетчер, релизующий нынешний функционал D-Bus (ну там, запуск по требованию, рассказы что доступно и тому подобное) - а кроме того - привязку релизаций к интерфейсам и выбор дефолтной для кадого интерфейса - в смысле выбор пользователем. Еще одна его функция - это навороченная система мониторинга и при необходимости модификации сообщений по всем мыслимым критериям. Да, разумеется - "текстовые" клиенты для работы с этой шиной обязательны. Но внутренняя тиипизация (a-la protobufs) сообщений и возможность структурированно с ними работать из разнообразных ЯП - тоже обязательны. Потому что это заставляет делать продуманные интерфейсы и уменьшает шансы отправить чушь, которая будет невесть как интерпретирована.

А вот на шине мы уже можем реализовать много чего - сессии (древовидные, где дочерние сессии наследуют и переопределяют свойтсва родительской - и все свои настройки софт загружает/хранит именно в сессиях), определение стандартных хоткеев, способы реализации "акивных зон" (global menu - как пример), само собой - нормально настраиваемые нотификейшны (по пачке признаков - класс, интерфейс-отправитель, софт-отправитель, текст и т.п. - можно настроить реакцию), стандартные диалоги открытия/сохранения файлов (об этом дальше) и т.п.

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


Такие вот намётки.

Date: 2012-08-13 12:32 am (UTC)
From: [identity profile] mithraen.livejournal.com
Главная засада этой идеи -- слишком тесная интегрируемость приводит к жутким проблемам в связи с крайне высокими требованиями к квалификации разработчиков.

Microsoft на этом себе лоб успешно разбила. У них денег и квалификации управленцев чтобы решить эту проблему не хватило.

(no subject)

From: [identity profile] rainbow_beast.livejournal.com - Date: 2012-08-13 09:46 am (UTC) - Expand

(no subject)

From: [identity profile] mithraen.livejournal.com - Date: 2012-08-13 10:01 am (UTC) - Expand

(no subject)

From: [identity profile] rainbow_beast.livejournal.com - Date: 2012-08-13 10:16 am (UTC) - Expand

(no subject)

From: [identity profile] mithraen.livejournal.com - Date: 2012-08-13 10:42 am (UTC) - Expand

(no subject)

From: [identity profile] rainbow_beast.livejournal.com - Date: 2012-08-13 11:01 am (UTC) - Expand

(no subject)

From: [identity profile] rainbow_beast.livejournal.com - Date: 2012-08-13 11:09 am (UTC) - Expand

(no subject)

From: [identity profile] mithraen.livejournal.com - Date: 2012-08-13 10:44 am (UTC) - Expand

(no subject)

From: [identity profile] rainbow_beast.livejournal.com - Date: 2012-08-13 11:03 am (UTC) - Expand

(no subject)

From: [identity profile] mithraen.livejournal.com - Date: 2012-08-15 06:08 am (UTC) - Expand

(no subject)

From: [identity profile] rainbow_beast.livejournal.com - Date: 2012-08-13 09:31 am (UTC) - Expand

(no subject)

From: [identity profile] rainbow_beast.livejournal.com - Date: 2012-08-13 09:55 am (UTC) - Expand

(no subject)

From: [identity profile] rainbow_beast.livejournal.com - Date: 2012-08-13 10:34 am (UTC) - Expand

(no subject)

From: [identity profile] rainbow_beast.livejournal.com - Date: 2012-08-13 11:17 am (UTC) - Expand

(no subject)

From: [identity profile] rainbow_beast.livejournal.com - Date: 2012-08-13 11:51 am (UTC) - Expand

(no subject)

From: [identity profile] rainbow_beast.livejournal.com - Date: 2012-08-13 12:30 pm (UTC) - Expand

(no subject)

From: [identity profile] rainbow_beast.livejournal.com - Date: 2012-08-13 12:44 pm (UTC) - Expand

(no subject)

From: [identity profile] rainbow_beast.livejournal.com - Date: 2012-08-13 01:17 pm (UTC) - Expand

(no subject)

From: [identity profile] rainbow_beast.livejournal.com - Date: 2012-08-13 02:10 pm (UTC) - Expand

(no subject)

From: [identity profile] commentarius.blogspot.com - Date: 2012-08-14 12:46 pm (UTC) - Expand

(no subject)

From: [identity profile] commentarius.blogspot.com - Date: 2012-08-14 03:18 pm (UTC) - Expand

(no subject)

From: [identity profile] rainbow_beast.livejournal.com - Date: 2012-08-13 12:48 pm (UTC) - Expand

Profile

vitus_wagner: My photo 2005 (Default)
vitus_wagner

August 2025

S M T W T F S
     1 2
3456789
10111213141516
17181920212223
24252627282930
31      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 3rd, 2025 08:13 pm
Powered by Dreamwidth Studios