Записки реликта - Опять про интерфейсы [entries|archive|friends|userinfo]
Latimeria chalumnae

[ userinfo | ljr userinfo ]
[ archive | journal archive ]

Опять про интерфейсы [Apr. 22nd, 2008|01:35 am]
Previous Entry Add to Memories Tell A Friend Next Entry
LinkОставить комментарий

Comments:
[User Picture]
From:[info]mitajchik
Date:April 26th, 2008 - 12:21 am
(Link)
Юр, все-таки ты исходишь из не совсем адекватной парадигмы. Вернее, она не соответствует моим, и насколько я знаю большинства пользователей нуждам.
Да, профессиональный инструмент, который надо сначала изучить а потом эффективно использовать - это дело хорошее. Но мне зачастую в течении пары часов требуется сделать нечто, для чего надо задействовать десяток разных инструментов. если я каждый раз буду брать профессиональный - я нифига не сделаю. Приходится брать кривой и неподходящий, зато знакомый и гарантирующий нужный мне результат в нежное время (хотя и кривоватый).

Ну вот скажем юникс-консоль и ее стандартные средства - начиная от ls и вплоть до развесистых консольных редакторов вроде emax'а. Есть вещи, которые я знаю как сделать через консоль - и тогда это действительно очень удобно. Но если я не знаю - то все, труба. Либо сутки курить маны (потому что они написаны для профессионалов, а не для первого встречного) либо брать очередного word-подобного урода. Кто мешает, скажем в дополнение ко обычным манам сделать тьюториалы - типа "10 самых типичных задач решаемых командой такой-то"? Кто мешает выводить подсказки по ключам - если их там под сотню, про 90 из них вообще фиг поймешь что они делают? Типа - нажал после команды tab, оно мне прямо в строке формирует что-то вроде выпадающего списка ключей и когда я какой-то выбираю - еще и тип пишет. Google-подобный поиск по документации - я формулирую вопрос на человеческом языке, а мне предлагают способы решить мою задачу? Все это можно сделать отключаемым, не вопрос. Аналогично - с латехом и любыми другими языками и скриптами...

Хорошо, интерфейс не обязан быть интуитивен каждому барану. Но в нем обязательно должны быть подсказки, как решить типичные задачи в два тыка. И метод "обыскать интерфейс и найти то что тебе надо" тоже нужен - другой вопрос, что, как в примере с вордом и стилями - фиговфе решения должны быть внятно помечены как durty. Типа, я изменяю шрифт в редакторе что бы сделать заголовок - оно мне в ответ тут-же предупреждает плавающей подсказкой, лучше так не делай, а сделай стиль.

Что-то у меня не формулируется то, что я хотел сказать... Много конкретных примеров, а общая мысль как-то затерялась -:))
[User Picture]
From:[info]dari_dac
Date:April 26th, 2008 - 08:16 am
(Link)
>Что-то у меня не формулируется то, что я хотел сказать...
Да, не, как раз вполне внятно. Ощущения, по крайней мере. Хотела написать примерно то же, но не сформулировалось совсем.
Типа +1 и всё такое.
[User Picture]
From:[info]uri
Date:April 26th, 2008 - 12:52 pm
(Link)
Даш, у меня, честно говоря, есть ощущение, что ни ты, ни Митя не вполне понимаете, о чём именно я говорю. Речь идёт о том, что при проектировании современного ПО с графическим интерфейсом (и, прежде всего, окружения для его работы) второстепенные задачи решаются в ущерб главным. Командная строка, или Emacs — это примеры более правильного подхода, а не универсальное решение любых проблем.

Подробнее — в моих ответах Мите в этом же треде, а тебе, если позволишь, несколько вопросов для взаимного прояснения позиций: =)


Речь-то, на самом деле, не о том, какой из существующих интерфейсов лучше (холивар "ворд vs. командная строка" во всех отношениях бессмысленен), а чего мы хотим от интерфейсов вообще?
[User Picture]
From:[info]uri
Date:April 26th, 2008 - 11:19 am
(Link)
Митя, прости, но у меня есть ощущение, что ты а)не слишком внимательно прочитал мой пост, б)не ходил по ссылкам.

Сначала в защиту "не совсем адекватной парадигмы", потом по частным возражениям, o'k?

Основная проблема "быстрых и грязных" решений в том, что на самом деле они не являются решениями: в 90% случаев это просто переваливание проблемы на других, или (что гораздо хуже; и чаще =)) на себя же в будущем. Твои бои с почтовой базой Widisoft, тому ярчайший пример. К моменту, когда пользователь понимает, что перерос б.-и-г. решение, он накапливает, скажем, огромные массивы ценных данных, которые, к тому же никуда не переносимы по причине кривизны используемого формата, или что-нибудь ещё в таком же роде.

То же самое можно сказать и по-другому: глядя на начальные отрезки обеих кривых обучения (см. мой ответ пользователю Imageyermishkina), ты аппроксимируешь их прямыми, причём аппроксимируешь неправильно. Повторюсь: сторонники пресловутого "UNIX way" ведь не поголовно же мазохисты, правда? Такой подход к организации взаимодействия с компьютером действительно экономит усилия, за счёт модульности рабочего окружения, единообразия принципов работы с ним и высокой интероперабельности каждого его компонента. В итоге, во-первых, каждая следующая задача решается проще предыдущей, потому что принципы их решения единообразны, а во-вторых, принципиально новые задачи, для решения которых нужны новые средства, встают перед тобой гораздо реже.

Здесь не удержусь от того, чтобы снова процитировать башорг:
Если бы люди умели пользоваться vim, grep, sed, awk, то миллионы программных продуктов так никогда и не были бы созданы

(у меня есть некоторые возражения по поводу vim, ну да ладно =)).

В который раз в этом обсуждении можно привести аналогию с автомобилем: говорить о трудоёмкости освоения UNIX way это всё равно что отказываться учиться водить, мотивируя это тем, что каждый раз, когда надо будет куда-то поехать, придётся ходить на курсы вождения.

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

Плохи не "дружественность", и тем более не GUI сам по себе — они вполне могут быть реализованы вместе с разумной организацией инфраструктуры. Но не вместо же неё, как это происходит сейчас!

Почитай ещё одну (помимо той, на которую ссылка в исходном посте) статью Витуса Вагнера — True Unix GUI. Он там объясняет всё настолько кратко и ясно, насколько это вообще возможно, не вижу нужды пересказывать. К сказанному им можно добавить только, что "True Unix GUI" мог бы быть ещё удобнее, чем он описывает, будь он объединён средой типа Enso — если уж обсуждать эту тему, сходи всё-таки по ссылке и посмотри ролик, не пожалеешь!

Забавно, но мы, на самом деле, движемся именно в этом направлении. Спасение человечества придёт… из веба. На самом деле, современные веб-приложения, с их mashup-сервисами, с их универсальными форматами обмена данными (HTML, RSS/Atom, XMLRPC), с пока маргинальной, но очень многообещающей концепцией WebOS (хотя, на мой взгляд, корректнее говорить о Web Desktop Environment) — шаг, и огромный шаг, именно в нужном направлении, в направлении "True Unix GUI".

Скрестим пальцы.
[User Picture]
From:[info]uri
Date:April 26th, 2008 - 12:15 pm
(Link)
Теперь по мелкой конкретике. =)

Кто мешает, скажем в дополнение ко обычным манам сделать тьюториалы - типа "10 самых типичных задач решаемых командой такой-то"?

Никто. Собственно, таких ресурсов море — не устаю рекламировать, например, прекрасную страничку "Linux-Unix cheat sheets".

Более того, я сам коплю потихоньку материал для аналогичной русскоязычной шпаргалки. Если сделаю — вывешу куда-нибудь.

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

Примерно это уже делает Zsh.

Google-подобный поиск по документации

Тоже уже существует: по man это whatis и apropos, по info — M-x index-apropos и M-x info-apropos в просмотрщике info.

Кстати, локальные поисковые сервисы в Windows и Windows-подобных средах (KDE, Gnome) вообще недооцениваются. Mac с его развесистыми средствами локального поиска, вокруг которых построен интерфейс, в этом отношении куда удобнее. Это полный оффтопик, но не удержусь и прорекламирую прекрасную программу Recoll, лучших из протестированных мной свободных локальных поисковиков.

Аналогично - с латехом и любыми другими языками и скриптами...

Вот этой фразы я не понял. Ты про хорошие руководства начального уровня? Но по тому же латеху есть книжка Львовского, доступнее которой, по-моему, быть просто не может…
[User Picture]
From:[info]uri
Date:April 26th, 2008 - 12:20 pm

И ещё

(Link)
Хорошо, интерфейс не обязан быть интуитивен каждому барану. Но в нем обязательно должны быть подсказки, как решить типичные задачи в два тыка. И метод "обыскать интерфейс и найти то что тебе надо" тоже нужен - другой вопрос, что, как в примере с вордом и стилями - фиговфе решения должны быть внятно помечены как durty. Типа, я изменяю шрифт в редакторе что бы сделать заголовок - оно мне в ответ тут-же предупреждает плавающей подсказкой, лучше так не делай, а сделай стиль.

Ты, мне кажется, мешаешь в одну кучу очень разные вопросы.

  1. "Хорошо, интерфейс не обязан быть интуитивен каждому барану." — да нет, как раз обязан. В том смысле, что между интерфейсом и задачей в предметной области должна просматриваться интуитивно очевидная, легко заметная связь. Ещё раз вспомним аналогию с автомобилем: назвал ли бы ты "интуитивным" управление автомобилем, состоящее из двух кнопок, "Поехать в работу" и "Поехать на дачу", а движение по остальным маршрутам позволяющее только через многочасовое копание под капотом, или не позволяющее вовсе?

    Сценка "Если бы люди водили также, как они работают на компьютерах" написана не вчера и не мной, ага. =)

    "Интуитивный интерфейс" в том смысле, который обычно имеется в виду, это buzzword, в принципе. Удобнее то, что привычно (ну, посмотри, как пользователи vindoze ругаются на "неудобство" объективно более эргономичных Маков), но не всё привычное сколько-нибудь эффективно, вот в чём беда.

  2. другой вопрос, что, как в примере с вордом и стилями - фиговфе решения должны быть внятно помечены как durty. — ты знаешь, я не уверен, что dirty решения должны вообще быть возможны. Вопрос должен стоять так: "Как организовать среду, в которой можно комфортно работать без возможности сделать кривое решение?", а не "Как сделать так, чтобы в среде, ориентированной прежде всего на кривые решения, можно было делать хоть что-то разумное?".

  3. Типа, я изменяю шрифт в редакторе что бы сделать заголовок - оно мне в ответ тут-же предупреждает плавающей подсказкой, лучше так не делай, а сделай стиль. — угу, "плавали, знаем, вся жопа в этих ракушках". Мить, что первым делом пользователь сотворит с этими подсказками? Отключит нахер, не читая, что характерно. Вообще, научить пользователя читать хотя бы сообщения об ошибках — это большая и до сих пор не решённая проблема
  4. =).


Ещё раз: настоящая задача организации интерфейса решается только на метауровне. Не "консоль vs. GUI", а "принципы, на которых организована юниксовая командная среда vs. принципы, на которых организована современная графическая среда".