Пользователь
0,0
рейтинг
13 декабря 2013 в 15:54

Разработка → Почему в Delphi делают плохие интерфейсы? recovery mode

Часто приходится слышать – «Delphi – среда для разработки «кривых» интерфейсов». Либо Delphi-разработчики какие-то генетически ущербные в плане создания интерфейсов. Либо сама среда провоцирует на плохой дизайн GUI. Есть повод сконцентрировать на данной проблематике своё внимание.

В начале «эпохи прикладного бума» за счёт использования средств визуальной разработки доминировала Delphi. Конечно, были и другие средства разработки приложений с оконным интерфейсом (Visual Basic, Visual Studio и т.д.), но, вспоминая ситуацию в России периода Delphi 1…3, можно достаточно обоснованно говорить широчайшем распространении этой среды. Продукт «выстрелил», прежде всего, из-за гигантского дефицита программного обеспечения. Но и языковая простота Delphi сыграла ключевую роль – очень много было инженеров, но мало программистов. Зато в Delphi люди после институтского курса за месяц могли если не стать программистами, то хотя бы разработчиками. В смысле, могли самостоятельно создавать программные продукты.



Delphi вкупе с нехитрыми навыками создания оконного интерфейса стала для многих путёвкой в IT-жизнь. Люди учились создавать ПО, руководствуясь собственными представлениями о том, каким должен быть GUI. Ситуацию усложняло то, не было правил проектирования интерфейсов. В до-дельфийском Borland C++4.x заготовка шаблона диалогового окна подразумевала вертикальное расположение кнопок [Ok] [Cancel] справа. В Delphi можно было кнопки размещать как угодно. Можно ли это считать провокацией? Ровно настолько, насколько таковой считается «свобода» в общем представлении и «гибкость» в сфере инструментов для разработки ПО.

Итак, на входе мы имеем значительное количество разработчиков, квалификация которых определялась временем на самоподготовку. Обучение проходило «по ходу дела» и за счёт «собственных ресурсов». Вполне естественно, что первые приложения поражали разнообразием своих интерфейсных форм. Если бы вместо Delphi выступала другая технология, то именно она бы была использована для массового само-обучения с вполне предсказуемыми последствиями. Если учительница русского языка в школе жалуется, что «ученики совсем не знают русский язык и пишут с чудовищными ошибками», то здесь дело не в русском языке. Английские (китайские, японские, чешские) школьники выдают не менее забавные «перлы», учась формулировать свои мысли в свободных рамках грамматики и стилистики естественного языка.

image

Вывод (эволюционный): в Delphi из-за её «первичности» как технологии разработки ПО сделано очень много не самых выдающихся интерфейсов. Но проблема не в Delphi, а в естественном ходе истории.

Далее, в «ранне-дельфийский период» практически любое создаваемое прикладное ПО было уникальным (в плане отсутствия аналогов). Чем эффективнее был проект, тем больше шансов было его пере-стабилизировать, заморозив изначальные, пусть и не оптимальные, компоновки GUI. Поэтому существование успешного ПО с «кривым» интерфейсом есть признак успешности!
Вывод (парадоксальный): чем успешнее bad-gui проект, тем меньше шансов сделать его лучше. А успешность достигается за счёт множества факторов, не обязательно связанных с качеством графического интерфейса.

image

Конечно… Если бы в Delphi все использовали MVC или какую-либо другую технику отделения интерфейса от алгоритма и логики… Но эти надежды неоправданны. Нам как бы обещают «лёгкую замену» интерфейса. Только вот интерфейс растёт с функционалом, иногда обгоняя его, иногда догоняя. Смена интерфейса – это не машину перекрасить, это кузов поменять.

Сколько раз мы слышали от пользователей: «Куда ты дел мою кнопку? Она была «кривой», но я привык. А где теперь мне её искать?» Как минимум это фиксирует не самые красивые решения, а в самых тяжелых случаях приходится «продолжать валить кнопки на форму», т.к. того требует конечный потребитель.

Вывод (неутешительный): Качество интерфейса пользователя может снижаться (не повышаться) из-за требований пользователей! Привычки пользователя — тормозной башмак на пути бронепоезда революционных улучшений интерфейса.

Программисты – народ креативный. Главный драйвер развития всех технологий – желание сделать лучше. Функционал – в функции, поцедурный код – в классы, классы – обобщить шаблонами («дженериками» в Delphi). Никто не хочет выполнять однообразно-рутинные операции и делать скучные интерфейсы. «Заказчик хочет, чтобы я написал второй Ехель!» — вот одна из главных проблем того начального периода, когда пользователь ориентировался в своих предпочтениях на продукты из состава MS Office. Но разработчику удавалось, порой, продавить свои «инсталляции».

image

Вывод (творческий): слишком оригинальные интерфейсы есть не признак отсутствия вкуса/знаний. Это — побочный эффект стремления к самовыражению, свойственному программистам.

Мальчики не умеют танцевать/рисовать. Отбросив весь сексизм, тем не менее, мы должны признать, что разработка ПО во многом зона ответственности сильной половины человечества. Многие делают интерфейсы «безобразно, зато однообразно» (армейская шутка). Являются ли «дельфисты» более «мужланистыми», чем пользователи других средств разработки – не известно. Был случай в моей практике (разработка по теме для силовой гос. структуры), когда было предъявлено требование – интерфейс должен быть зелёным (в прямом смысле)! Броневик – зеленый, бортовой ноутбук – зеленый, интерфейс – тоже должен быть зелёным! А можно просто цветовую схему Windows поменять на зелёную? Нет! И чтобы все кнопки были «квадратно-гнездовые», как на пульте управления.

image

Вывод (бесхарактерный): «кривость» интерфейса часто определяется вкусами пользователей. Какие пользователи, такие и вкусы. А причём тут Delphi? При том, что «дельфист» покладист и несклочен вследствие визуальности среды разработки. Хотите 3 пикселя влево? Пожалуйста!

Windows как операционная система отличается консервативностью в плане интерфейса прикладных программ. С Windows 95 до Windows 7 кроме «Ribbon» (и то, как ещё смотреть на данное явление) никаких особых инноваций не предлагала (зато Windows 8 с лихвой компенсировала годами накопленную потребность в нововведениях). В дизайне на основе «классических компонентов» не было поля для поиска конкурентных преимуществ. Ведущие игроки начали «зашкуривать» интерфейсы, им хватало на это вкуса, таланта и ресурсов для приглашение профессионалов со стороны. Прикладники начали уподобляться им, только богатая львиная шкура заменялась лоскутным одеялом из шкурок разномастных кроликов.

image

Общий вывод: когда мы глядим в очередной продукт с интерфейсом пользователя, поражающим своей дикостью, нужно понимать степень влияния Delphi как инструмента на конечный дизайн. Выезжая на дороги нашей страны и нервничая из-за «плохой культуры вождения», «опасной езды» и «непреднамеренного создания аварийных ситуаций» силами участников движения, мы же не обвиняем производителей автомобилей!

Скоро закончится конкурс мобильных приложений для Android, сделанных в Delphi. Будет отличный материал для обобщения техники использования «Платформы FM» для создания «мобильных интерфейсов». Подано более 300 заявок.

image

Всех с пятницей!
До окончания конкурса ещё 12 дней, есть разработчики, уже подавшие свои законченные проекты на рассмотрение. Пока как новые, так и старые «дельфисты» демонстрируют тонкое чувство специфики мобильных интерфейсов для Android. С нетерпение ждём подведения итогов.

image
@VsevolodLeonov
карма
–1,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (25)

  • +14
    Думал будет как обычно, но ничего, прикольно даже.
    А вообще понятно почему в Delphi делают плохие интерфейсы. Потому что могут и это несложно.
    • –16
      Спасибо! Карму что-ли занулить?
    • +4
      Мне Delphi очень нравиться, хотя я знаю и использую очень часто огромный пучок языков программирования.
      Я люблю Delphi:
      — можно быстро, эффективно сделать программу с одной кнопкой в интерфейсе, где результат выдаваться будет в поле редактора(TMemo)
      — для Delphi всегда есть пучок «кривых» примеров и модулей, которыми можно воспользоваться и сделать «правильно»
      — за весь свой богатый опыт в сфере программирования я понял одно — пользователям надо видеть менее трех кнопок на экране, Delphi для этого отлично подходит — обычно это называют «плохие интерфейсы»
      Есть минусы, но я знаю что с помощь Delphi можно «сверх быстро» состряпать GUI и программу которая будет выполнять то что ей положено.
      ЗЫ: как старой закалки программист, я вообще считаю что GUI — для тех кто «плохо видит» в консоли буквы и не умеет быстро читать.
      • +2
        Пожалуйста, не пишите программы с GUI, только консольные.
      • +1
        Я с вами согласен и не понимаю почему вас минусуют.Сколько приходилось решать на Delphi и только 1 раз была цель сделать красивый интерфейс, который рисовал дизайнер. Во всех остальных случаях во главе угла стояла функциональность. И это не только Delphi касается. Для 1с какие кривенькие интерфейсы пишут ничуть не стесняясь, но бухгалтера их любят и пользуются с радостью поделками локальных программистов. Потому что и не нужен интерфейс для этих задач
        • 0
          Интерфейс нередко нужен, но не столько красивый, сколько удобный в плане юзабилити. Но тут надо смотреть по конкретным задаче и пользователям. Не далее как вчера по пользовательскому опыту дорабатывал написанную 3 дня назад на коленке утилитку — забыл поначалу добавить обработчик события, чтобы по нажатию Enter на Edit-е срабатывало событие OnClick на соседней кнопке (добавление введённого в список). После доработки стало гораздо удобнее, хотя работы было всего на пару строк.
      • НЛО прилетело и опубликовало эту надпись здесь
  • +7
    Отличная статья ниочем.

    TL;DR (для тех кто не осилил): Виноваты пользователи и программисты, конечно.
    Как им удается делать быстро и красиво интерфейсы на HTML например, автор топик не в курсе.
    • +7
      На HTML тоже хватает всяких ужасов.
      • +2
        Да там огромное кол-во ужасов, масштаб проблем можно оценить если вспомнить интернет 90-х — начала 00-х. Сейчас тоже есть, но сильно спасают готовые шаблоны да фреймворки)
  • +5
    Попробовал написать хоть что-то на XE5. Впечатления — ужас. С момента нажатия на Run до момента открытия приложения на аппарате — 2(!!!)минуты. Эмулятор — так и не запустился. Постоянные креши. Даже в wiki идут рекомендации — «не стартует приложение? перезапустите телефон».
  • +5
    Честно говоря, я ни разу не слышал, что Дельфи «это средa для рaзработки кривых интерфейсов». Постановка вопроса странная: ну тогда молоток — это инструмент для производства кривых гвоздей, перфоратор — средство раздражать соседей? :)

    А вот про что бы я почитал, так это про то, как переделывать свое клиент-серверное приложение (со доступом к БД) с десктопа на планшет.
    • +2
      >>Честно говоря, я ни разу не слышал, что Дельфи «это средa для рaзработки кривых интерфейсов».

      Коммент к последней статье про «мобильный наблюдатель от Digifort».

      >>как переделывать свое клиент-серверное приложение (со доступом к БД) с десктопа на планшет.

      В хабе Delphi пять статей на эту тему «Разработка кроссплатформенных мобильных приложений в Delphi». Там вся тема ведётся как от десктопа перейти на мобайл.
  • +1
    >Коммент к последней статье про «мобильный наблюдатель от Digifort».

    Если на каждый такой коммент писать статью с разъяснением того, как наличие тестикул коррелирует с точностью определением пола непарнокопытных млекопитающих, то можно долго этим заниматься… :) Если руки кривые, то и интерфейс такой же получится (ставьте плюс если согласны!).

    >В хабе Delphi пять статей
    ок
    • 0
      Человек может быть гениальным программистом, но с проектирование интерфейсов у него не сложило. Кривые руки виноваты?
      • 0
        Если у кого-то «не сложилось с проектированием интерфейсов» — то да, именно в этой области руки кривые. Или предполагается, что некто может быть гениален во всех областях? Писать код, а на выходных баловаться нейрохирургией?
        Дизайн интерфейса — это не так просто, как кажется, и в серьезных проектах его программистам не доверяют по причине существенной разницы в мышлении программиста и обычных пользователей. Программист тренирован выделять общие понятия и работать с абстракциями, обычный пользователь думает, что «ветер дует, потому что деревья качаются».
        • 0
          По вашей логике получается, что все люди криворукие.

          Ваши доводы мне не понятны, я вроде не спорил о том, что разработка интерфейсов это легко и просто, и не говорил, что бываю люди гениальные во всех областях. Я только не согласен с вашей трактовкой криворукости человека.
          • 0
            Иметь разные мнения — это нормально.
            Я понимаю, что хочется верить, что есть люди со 100% прямыми руками во всех областях человеческого знания, и был бы рад с такими людьми познакомиться, но эволюция человека и общества идет по пути специализации и кооперации, поэтому я считаю, что шансы встретить идеального человека невелики.
            Не удержусь от самоцитирования: ibsurgeon.blogspot.ru/2006/03/3.html
            :)
          • 0
            По вашей логике получается, что все люди криворукие.

            Так и есть. Есть области, на которых человек специализируется, а в остальных и руки кривые, и пятая нога, да и седло мешается. Про образ мышления и говорить нечего, т.к. даже близкие люди порой принципы логических выводов друг друга понять не могут.
  • 0
    В чём-то авто прав. В мою жизнь Borland Builder ворвался сразу после консоли, минуя MFC, и конечно я, как и все проходил этап «нужно больше разноцветных кнопок». Однако со временем ко мне пришло понимание элементарных азов UX.

    На любом фрейморке можно писать плохие интерфейсы. Но ведь никто не станет отрицать, что на Delphi написаны и неплохие варианты.
    • НЛО прилетело и опубликовало эту надпись здесь
      • 0
        MFC намного меньше распространен, поэтому про него особо и не говорят. Думаю лет через дцать будут так же говорить про дотнетчиков, т.к. он как раз пришел на смену Delphi. Достаточно вспомнить те интерфейсы, которые мы делали в студенческие времена. А уж фразу одной одногрупницы я буду вспоминать до конца жизни: «А можешь фон розовый сделать и кнопочки покрасить? Так гламурнее будет.».

        Delphi поощрял кривой гуй своей распространенностью и низким порогом вхождения. Добавляем сюда высокий спрос на кодеров и получаем, что брали уже хоть кого-нибудь, лишь бы сделал то, что будет работать. А потом уже пользователи привыкали и менять интерфейс нельзя было.
  • НЛО прилетело и опубликовало эту надпись здесь
  • 0
    Кривость интерфейса никак не зависит от языка программирования. Микроволновки некоторые написаны далеко не на дельфях)
    Мешает отсутствие пропаганды эргономики в сложных проектах, направленной на улучшение скорости работы с приложением. А также то, что первая задача программиста — заставить программу выдавать результат.
  • 0
    На мой взгляд, упустили еще важный момент, игравший на пользу страшным интерфейсам, с приходом WinXP многие компоненты Delphi отрисовывались в классическом стиле, при этом довольно кривом, с содроганием вспоминаю таблички и spinner выбора числа. Вообще скудный набор элементов интерфейса виндов очень пагубно сказался на оформлении приложений, что подталкивало разработчиков к добавление скинов.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.