29 окт. 2011 г.

По заявкам читателей

Читатель Максим попросил написать заметки об удобстве пользовательского интерфейса в Эклипсе.

Дорогой Максим!

Я еще не успел воспользоваться всеми преимуществами интегрированной среды разработки «Затмение» версии 3.7.1, артикул M20110909-1335, потому что вот уже как два часа подряд не могу поставить в нее Google AppEngine Toolkit. Тем не менее, уже при установке расширений я начал замечать интересные особенности пользовательского интерфейса.

На рисунке ниже показано окно прогресса установки расширения в IDE Eclipse 3.7. Мы видим линейку прогресса, видим описание текущей операции. Нам доступны следующие команды: выполнить установку в фоне, отменить установку, показать подробную информацию.

image

Классика жанра: любой процесс установки сразу прыгает до 50% в момент запуска, висит в этом состоянии бесконечно долго, а затем мгновенно прыгает до 100%. Таким образом, линейка прогресса в этом случае полностью теряет весь тот смысл, который в ней был заложен.

В надежде найти индикатор, указывающий на оставшееся время до завершения, пользователь может нажать кнопку «Подробнее». Но там его будет ждать разочарование.

image

Здесь мы видим тот же самый индикатор прогресса и описание выполняемой команды. Еще можно отметить фразу «Installing Software», которая в столь маленьком окне упоминается аж четыре раза. Кнопка «Подробнее» также не выполняет ту функцию, которая следует из ее названия. Никакой новой информации для пользователя здесь нет. Сложно себе представить программиста, настолько отрешенного от объекта своего труда, способного запрограммировать такую ахинею. Но как показано выше, в команде разработчиков Эклипса такой есть как минимум один.

На мой взгляд, причина подобной дегенерации заключается в следующем: в нашем мире все еще слишком мало качественного программного обеспечения. С глубокого детства мы пользуемся плохим программным обеспечением. И много ошибочных шаблонов уже зашиты у нас глубоко в сознании. В примере таким ошибочным шаблоном является наличие кнопки «Подробнее». Но если нечего больше показать, может эта кнопка и не нужна? Даже если показать больше нечего, программист все равно делает эту кнопку, не отдавая себе отчет, потому что он привык к этой кнопке с детства. Или задумайтесь, например, что значат символы << и >> на этой кнопке? Мы этого никогда не узнаем, потому что тот человек, который первый начал их применять, уже давно не с нами.

Можно привести еще несколько примеров. В любой даже самой простой программе должны быть настройки (Options, Settings). А должны ли они быть? В любой программе должно быть меню с обязательными разделами File, Edit, Window, Help. А нужно ли это меню? В каждой программе должен быть тулбар. А должен ли он быть? И так далее.

To clarify add detail. Edward Tufte

6 комментариев:

  1. Спасибо, замечательное начало =)

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

    ОтветитьУдалить
  2. В эклипсе может быть запланировано несколько последовательных процессов, и кнопка Подробнее как раз отображает полный список, так она не совсем бесполезная. Так уж вышло, что по работе я программирую в Eclipse(!) на C++(!!) под Symbian(!!!). В целом это достаточно вменяемая IDE в сравнении с другими существующими. Но объективно -- это ад кромешный и ебанный стыд. К всеобщему счастью я работаю над проектом нового внешнего вида для сред разработки :D Не пройдет и пяти лет…

    ОтветитьУдалить
  3. Sergey Olendarenko
    я работаю над проектом нового внешнего вида для сред разработки


    В какой роли?

    ОтветитьУдалить
  4. В роли единственного, кому это вообще нужно. Никто из моих друзей не заинтересовался.

    ОтветитьУдалить
  5. Хотя я являюсь фанатом этой среды разработки, вынужден согласится, что её UI местами поражает... Например, огромные контекстные меню, не всегда очевидное расположение кнопок и тотальное обощение всего, что вообще можно обощить.
    То что описано, как раз и является примером такого обощения: платформа Eclipse изнутри предоставляет программисту удобный интерфес для запуска фоновых задач (сборка проекта, установка дополнений и т.д.). Каждая задача может в свою очередь состоять из подзадач. Тогда это окошко приобретает весьма определеный смысл: общий прогресс операции отображается главной полосой, которая видна по-умолчанию, а прогресс по каждой подзадаче можно посмотреть в деталях, если интересно. Однако, в описанном случае, задача состоит всего из одной подзадачи, поэтому дополнительной информации кнопка "Details" не несет (кроме текста, который указывает детали для подзадачи). Что касается скачка с 50% сразу на 100%, то понятно, что многие задачи трудно (невозможно?) правильно оценить, однако, поскольку интерфейс для запуска фоновых задач требует этого приходится делать так как сделано.
    Из всего выше сказанного вытекает, что проблема скорее не в "программисте, настолько отрешенном от объекта своего труда, способного запрограммировать такую ахинею", а в том, что присутствует недостаток взаимодействия между командами, работающими над IDE, а также слишком сильное обощение, предоставляемое самой платформой, в которое не всегда удовлетворяет потребности клиентских плагинов.

    P.S. Повторюсь, не нужно думать, что я защищаю интерфейс Eclipse IDE, он местами ужасен. Но это открытая бесплатная платформа, поэтому любой может прислать патч с исправлением того, что ему не нравится, и это, безусловно, ее сильная сторона.

    ОтветитьУдалить
  6. Работаю больше года на Python в PyDev. Для среды разработки, за которую не просят денег, я готов простить все ее минусы, но думаю, перейду на PyCharm, как только выдавлю из себя 100 баксов.

    Приколов в Eclipse не то что дохрена, а мегадохрена, но согласитесь, особенно это касается версии для Windows (видимо сказывается кривость Java) и приколы с далеко UI не самые страшные из них.

    Утверждать, что Eclipse говно, потому что прогресс бар херовый было бы глупо, так как кроме этого самого бара там есть базиллион возможностей, большинство из которых доступно абсолютно бесплатно. Те, кому проблемы эклипса и плагинов мешают работать могут всегда купить лишенную этих проблем IDE.

    На основании всего вышесказанного я реквестирую более глубокое исследование на эту тему. Можно, например, поюзать несколько популярных плагинов -- PyDev, JDT, ADT, EGit, Subclipse, Mylyn и проанализировать то, как пользуясь ими можно вести разработку проекта не выходя из IDE вообще. На основе этого исследования уже можно будет написать хорошую статью. А эта статья такое же говно, как прогресс бар эклипса :) , второй же комментарий внушает больше доверия, чем она.

    ОтветитьУдалить

Темы

2012 (2) амазон (1) анпакинг (1) артемий лебедев (4) атн (1) аудио (1) аэропорт (1) безопасность (3) бизнес (1) билайн (1) блог (2) будущее (2) видео (11) википедия (5) вымысел (16) гагарин (1) герман (1) гитхаб (1) гугл (3) дед мороз (1) декабрь (1) демотиватор (2) дети (2) дизайн (13) диссертация (2) документация (1) друзья (5) евпатория (1) евро-2012 (1) жадность (1) заяц (1) идея (1) имейл (1) инстаграм (1) интервью (5) интересное (20) интерфейс (13) история (7) как_выжить (4) календарь (1) капитализм (1) картина (1) кмб (6) книга (6) коллекция (4) компилятор (2) конкурс (5) космос (1) лаборатория (1) либералы (1) лингво (1) лузер (6) макаренко (2) макдональдс (2) математика (1) медиапорт (1) ментор (1) металлика (1) металлист (2) метро (7) микрософт (6) миргород (1) москва (2) музыка (3) наркомания (1) новости (17) образование (3) оптимизация (5) основы (14) открытки (3) ошибка (11) памятник (1) патриотизм (3) плагиат (1) плата (1) погода (3) поиск (1) политика (2) полтава (2) праздник (1) программирование (15) прошлое (2) путешествия (8) рейтинг (1) рендер (1) рисунок (2) русские (1) русский язык (1) сайт (4) санкт-петербург (1) сапр (7) сеть (1) си++ (1) синтез (1) системси (1) скриншот (40) социализм (1) соцопрос (3) спектрум (2) спорт (2) срач (2) статистика (1) такси (1) тбб (3) твитер (9) тимошенко (1) украина (5) униан (1) фан (30) фокус (1) фото (39) фотошоп (1) фурсенко (1) футбол (2) хабр (1) харьков (21) хнурэ (19) хобби (4) цитата (2) чехия (1) школа (1) эпл (1) эхостар (1) юмор (1) яндекс (1) clang (2) doxygen (1) english (3) ios (1) llvm (1) msdn (1) outlook (1) PHP (1) stackoverflow (1)

Поиск

Читатели