Пропустить навигацию.

Почему я не люблю Java и нестандартные интерфейсы

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

Дальше много текста. С картинками.

В этой заметке я буду иметь ввиду только GUI-приложения.

Основное назначение Java - исполнение одного и того же кода на разных платформах. В теории это хорошо и полезно, но на практике это работает плохо.

У каждой операционной системы есть свой графический интерфейс. И свой API для его использования. В случае с Java это не подходит. Код должен быть один, а значит вызовов API конкретных ОС быть не может. Поэтому в Java есть свой API для создания GUI.

И тут начинаются проблемы.

Интерфейс программ на Java не является интерфейсом Windows. Это главная проблема. В Java можно нарисовать похожий интерфейс. Который будет похож на Windows, но не будет Windows.

Рассмотрим несколько примеров. Первых пришедших в голову. На самом деле их намного больше.

Диалоги открытия файлов.

В Windows они выглядят так:

Диалог открытия файла в Windows

В IntelliJ IDEA так. Похоже, но уже не то. Обратите внимание, как сделано переименование файла. Контекстное меню тут уже своё, а не из проводника Windows, как должно быть.

Диалог открытия файла в IntelliJ IDEA

А в Zend Studio вот так. Совсем не похоже. Контекстное меню и вовсе отсутствует.

Диалог открытия файла в Zend Studio

Ещё один пример: сглаживание шрифтов. Начиная с XP в Windows кроме обычного сглаживания есть ClearType. Для большинства ЖК-мониторов он намного приятнее для глаз.

Достаточно один раз включить сглаживание в настройках и все шрифты (для ClearType) выводимые с помощью Windows API будут со сглаживанием. А что у нас в Java?

В IDEA сглаживание можно включить в настройках. Вопрос: зачем, ели оно уже включено для всех программ? Ответ: затем, что к сглаживанию Windows оно не имеет никакого отношения. Это далеко не ClearType, а обычно сглаживание градациями серого.

В Zend Studio сглаживание можно включить изменив один из конфигурационных файлов. И там будет тоже не ClearType.

Вот так выглядит Zend Studio без сглаживания и SciTE (который тоже кросплатформенный, кстати).

Zend Studio и SciTE

Текст без сглаживания:

Текст без сглаживания
Текст без сглаживания

Текст со сглаживанием в Zend Studio:

Сглаживание Zend
Сглаживание Zend

А вот так настоящий ClearType:

Сглаживание ClearType
Сглаживание ClearType

Ещё одно различие. IDEA не сглаживает шрифты в интерфейсе (как Windows, если выбрать обычное сглаживание), а Zend Studio сглаживает, из-за чего они выглядят ужасно.

Zend Studio

Ещё одна проблема с IDEA и Zend Studio. Для того, чтобы шрифт интерфейса был такой же, как во всех программах, его нужно выбрать вручную. На то, что я уже один раз выбрал для себя шрифты, им наплевать.

И ещё одна проблема. Программы на Java похожи на ту версию (или версии) Windows, какие были в момент их разработки, а не на ту версию, какая установлена у пользователя.

Теперь расскажу о нестандартных интерфейсах.

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

Так вот. Для программ, которые делают что-то полезное, это не нужно. И даже вредно.

Причина этого проста. На разработку интерфейса было потрачено огромное количество времени. И очень сомнительно, что разработчики Shareware-программы сделают более удобный интерфейс.

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

TagScanner

Как обычно, есть и исключения. Например, Adobe Lightroom, где нестандартный интерфейс не делает его хуже. А, возможно, даже лучше. Конечно, Adobe никак не назовёшь мелким разработчиком Shareware. У них есть деньги на раработку интерфейса, а не только на рисование красивой картинки.

Lightroom

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

Главное отличие Windows от DOS — одинаковый для всех программ интерфейс. И это очень хорошее свойство. Нужно только им пользоваться.

Нет ничего плохого в стандартизации интерфейсов. Это хорошо, удобно и сокращает время обучения.

Почему почти все сайты на Flash такие не удобные? Потому что Flash даёт возможность делать все сайты не похожими друг на друга.

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

Firefox похож на Safari, Opera 8 похожа на Safari, Internet Explorer 7 похож на Safari, Windows Vista похожа на MacOS X и это очень хорошо, потому что это удобно.

Firefox

Opera

Internet Explorer 7
Изображение с WikiPedia.

Safari

Оригинальный интерфейсы обычно хвалят люди, для которых компьютер — это развлечение, а не инструмент. Для таких людей созданы стили Windows XP — первое, что отключаешь после установки XP. Для них же есть тысячи скинов для Winamp — один страшнее другого — тогда как интерфейс Winamp неудобен даже со стандартным скином.

  • http://dserg.com ankheg

    В точку. Если бы программы на Джаве не были такими страшными, были бы популярнее в сто раз. Хотя есть и исключения. Protege для работы с объектными бд ничего.

    А Winamp и вправду сущее зло. Но зато он везде есть, и к нему все привыкли.

  • http://sapegin.ru Артём Сапегин

    ankheg: IDEA и Zend Studio тоже хорошие, но нестандартный интерфейс пользы им не приносит.

    А к Winamp привыкли, потому что многие не видели ничего другого. Как пишут, не бывает интуитивных интерфейсов, бывают привычные.

  • Андрей

    Блин, пацаны нет слов…
    про java всё правда, но Winamp…
    Я ещё не видел чела, который бы открыл его и не сумел начать его
    использование.

  • http://sapegin.ru Артём Сапегин

    Андрей: начать использовать вообще и начать использовать так, чтобы было удобно — разные вещи. Для меня интерфейс Winamp решительно неудобен.

  • Андрей

    Как считаю я : если открыв программу в первый раз, я сразу же (немного утрированно, конечно) начинаю с ней полноценно работать, то это значит что у неё удачный и удобный и-фейс, т.е. «юзабилити».
    Наблюдение основано на моём достотаточно большом опыте общения с
    компутером.
    И как помню — уж c Winamp’ом нкаких проблем точно не было и нет.

  • http://sapegin.ru Артём Сапегин

    Андрей: рад за вас. Как и за себя, потому что уже много лет не пользуюсь им.

  • Андрей

    Ну ладно, бессмысленный спор %)
    Каждый всё равно при своём.

  • некто

    Полное гонево, особенно что касается Idea.
    Idea — самая удобная среда для кодинга из всех существующих.
    VS и Eclipse просто отдыхают. К чему нужна их красота (а она есть?)…

  • http://sapegin.ru Артём Сапегин

    некто: ой, у вас даже имени-то нет.

    Вы, похоже, не читали. Где вы там что-то про необходимость красоты в IDEA нашли? IDEA весьма удобная, но она похожа на Windows, но не Windows, что не удобно.

  • Андрей

    Так-так-так… На Eclipse попрошу не гнать.

  • Shurik (Java программист)

    За счет этих «огромных недочетов» java-программы переносимы (если не использовать native библиотеки). Нужна красота? Укрась монитор ромашками.

  • http://sapegin.ru Артём Сапегин

    Shurik (Java программист): ещё один фанатик Java. Вы тоже не читали текст.

    Про красоту я ясно написал. Переносимость — это хорошо, но, если она мешает использовать программу (как в случае перечисленных программ), то ничего хорошего в этом уже нет.

    Вам что нужнее, удобная программа или переносимая? Мне первое.

  • Grenouer

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

    С Винампом тоже никогда проблем не было. Пробовал другие проигрыватели, ни один не понравился, как раз из-за того, что они были неудобными.

    По поводу остального сказать ничего не могу.

  • http://sapegin.ru Артём Сапегин

    Grenouer, ну вот, адекватный человек нашёлся.

  • http://minidepo.qwnet.ru Hermes

    Насчет мастдая ваще промолчу… мастдай-мастдаем.
    Насчет винампа гониво полное.
    не видил ничего удобнее. пробовал приспособиться Windows Media Player (но это было о-о-о-о-очень давно), Amarok, iTunes и другие которые используют идеалогию «библиотеки» — вывод сделал для себя не утешительный. Просканировав свою коллекцию музыки получаю примерно половину списка в виде «Неизвестный исполнитель — Untitled Songs» и всё в этом духе. Проще чем перетащить нужное просто не придумать. От программы нужен только удобство, но и быстрота работы.
    Использую Linux, музыку слухаю Beep-media-player (клон винампа), а для видео вообще пользуюсь Mplayer без установленной поддержки GUI. Спрашивается зачем программе гуй, когда всё можно сделать с клавиатуры. Мышь зачастую приводит в замешательство, отвлекает и просто мешает работать…
    Windows вообще сама по себе не удобна, даже нельзя настроить для стандартных функций горячие клавиши.
    я лучше потрачу 30 минут времени на настройку хоткеев в Gnome и буду пользоваться всеми нужными программами исключительно с клавиатуры (при этом не обязательно переключаться на нужное тебе приложение). И когда такое достигнуто уже просто наплевать какой там «интерфейс» у программы — хоть консольный.
    ZDE очень удобная среда для разработки. Когда-то работал в DreamWivier, после единственного запуска ZDE больше ничего использовать не захотел (единственное с ZDE может хоть как-то потягаться Quanta++ из набора kdewebdev, но она более тормозная и более глючная.).

    ЗЫ: Будущие за OpenSource ИМХО

  • http://sapegin.ru Артём Сапегин

    Hermes, о ещё один клоун.