Быстрое программное обеспечение, лучшее программное обеспечение

Мы перевели статью Крейга Мода о преимуществах быстрого программного обеспечения. Из неё вы узнаете, как софт влияет на восприятие продукта пользователями, помогает улучшить его юзабилити и в целом может стать значительным коммерческим активом для бизнеса
Дарья Райт
Дарья Райт
Ведущий редактор в «Оди»

Далее текст от лица автора

Я люблю быстрое программное обеспечение (ПО). Софт, который молниеносно выполняет функции и обеспечивает мгновенную работу интерфейса. ПО с минимальной или нулевой задержкой между желанием активировать или управлять чем-то и его реализацией.

Если софт работает быстро, это означает, что над ним тщательно поработали. Хороший инструмент кажется простым, но это необязательно так. Скорость ПО — это, возможно, самый ценный его актив. Для меня быстрый софт — это разница между приложением, которое плавно интегрируется в жизнь, и тем, которым люди пользуются с неохотой. Скорость в ПО напоминает большие поля в книге: оно заставляет вас неосознанно улыбаться.

Одна из самых быстрых программ, которой я часто пользуюсь, — nvALT. Это скучное приложение со странным названием. Просто база данных, которая состоит из обычных текстовых файлов с прикрученным к ней обыкновенным текстовым редактором. Но она быстро работает. Это самая быстрая программа для каталогизации текстов, которой я когда-либо пользовался. Она мгновенно открывается и молниеносно выдает результаты. Я веду записи в nvALT в течение десяти лет. Как только вы её откроете, ваш курсор уже будет в поле поиска. В ней удобно использовать клавиатуру: если вдруг вы оказались вне поля поиска, просто нажмите esc, и вы попадёте туда. Введите несколько букв, и вы увидите все заметки, которые содержат эти буквы. Это лучшее воплощение автономного мозга, который у меня есть. Любой кусок текста, который имеет для меня ценность, попадает в nvALT.

nvALT синхронизируется с Simplenote. Это удобно, потому что nvALT доступно только на macOS. Поэтому вы можете использовать приложение Simplenote для iOS, чтобы ваши тексты всегда были в доступе. У Simplenote также есть приложение для macOS. Возникает вопрос: почему бы не использовать приложение Simplenote? Потому что оно работает не так быстро. Речь идет о миллисекундах, но этого достаточно, чтобы почувствовать разницу. Это напоминает разницу между японскими садовыми ножницами за 1000 долларов и садовыми ножницами за 150 долларов. И те, и другие прекрасно режут, но если вы работаете в саду целый день, вы (возможно?) почувствуете разницу.

Преимущественно я пишу в приложении Ulysses. Даже сейчас я пишу эту статью в Ulysses. Эта программа подходит для организации больших объемов текстовых данных. Организация — причина, по которой я её использую. Но в ряде случаев Ulysses может тормозить. Если моя статья содержит 5000 слов, и я набираю текст в самом верху, она иногда не успевает за моим набором. При каждом нажатии на клавишу программа перепечатывает текст заново. Это сводит меня с ума. Но хорошая организация файлов и простота приложения перевешивают эту тормознутость. Тем не менее, медлительность программы свидетельствует о невидимых проблемах внутри. Тормознутость это как неприятный запах. Я доверял бы этому приложению больше, если бы оно не тормозило, учитывая небольшой размер моего текстового файла. 5000 слов — это ничто. Его медлительность заставляет задуматься о том, насколько хорошо оно синхронизируется с другими программами и насколько велик риск того, что оно может потерять мои данные.

Люди часто интуитивно связывают между собой скорость и надёжность продукта. Скорость может быть хорошим показателем инженерного качества. Если приложение тормозит при выполнении простых задач, это может означать, что разработчики не уделяют должного внимания деталям. Не всегда, но это может означать, что за этим скрываются другие проблемы. Я хочу, чтобы все проектировщики моих приложений хорошо делали свою работу. Я не думаю, что Ulysses плохо сделана, но я был бы больше уверен в ней, если бы она обеспечивала быструю скорость ввода и мгновенную работу интерфейса. Я больше доверял бы этому приложению, если бы оно не тормозило.

В качестве обратного примера можно привести приложение Sublime Text, которое никогда не тормозит. Я могу загрузить в него файл, который состоит из 50000 строк, и оно будет работать молниеносно. Вы можете задать мне вопрос, который я иногда задаю себе: почему я не пишу в Sublime Text. Ответ таков: в целом эта программа недостаточно хороша. Типографика Sublime, проверка орфографии, организация файлов (отсутствие ключевых слов, невозможность упорядочить файлы и другие аспекты) — всё это недостаточно оптимизировано. Sublime Text ориентирован на код, а не на слова. В то время как Ulysses ориентирован на слова. Разница тонкая, но значимая. При этом Sublime Text — по моему опыту — становится только быстрее. Мне нравятся программы, которые со временем становятся более отшлифованными. Это должно стать целью всех программ. Чем дольше существует приложение, тем более отточенным оно должно становиться. Гладким, как речной камень. Я полностью доверяю разработчикам Sublime Text, потому что пользуюсь этим приложением уже более десяти лет, а также потому, что оно всегда ощущается как быстрый, целенаправленный инструмент, хотя оно достаточно сложное. И чем дольше я им пользуюсь, тем быстрее оно становится.

Adobe Lightroom, как и Photoshop, не производят впечатление быстрых инструментов, ориентированных на точное выполнение функций. Когда-то они были похожи, и поэтому я выбрал их. В 90-е годы Photoshop работал очень быстро. Это был действительно искрометный кусок кода. Я не думаю, что мне это кажется, но в 2007 году я начал пользоваться Lightroom, потому что он был намного быстрее, чем Aperture от Apple. Но Aperture больше нет, а Lightroom с годами не стал работать быстрее. Lightroom напоминает мне неуклюжий пузырь с кучей швов, который к тому же тормозит. Почему он не может стать быстрее? Это загадка века, но я подозреваю, что причина в: а) раздутости функций и б) отсутствии оптимизации инженерного ядра для такого количества функций. Возможно, поэтому Adobe выпустила Lightroom CC. Иногда проще создать новую программу, чем исправлять старую.

Сегодня Photoshop работает очень медленно. Открытие нового файла в Photoshop занимает секунды. Секунды на создание нового, пустого файла. В 2019 году (прим. переводчика: статья написана в 2019 году). Если вы нажмёте CMD-OPT-SHIFT-W, чтобы экспортировать изображения, загрузка экрана займёт 3-5 секунд. А если вы случайно нажмете CMD-OPT-W, все ваши окна закроются. С каждым релизом Photoshop работает всё медленнее и медленнее. Именно поэтому я с радостью оплатил Affinity Photo. Из-за скорости его работы. Вот и всё. Я по-прежнему плачу за лицензию Creative Cloud, в основном за Lightroom Classic и InDesign, но я с радостью заплатил за возможность использовать Affinity — проголосовал долларами, потому что этот редактор такой быстрый, в особенности при экспорте файлов. Я вздыхаю — на самом деле вздыхаю — всякий раз, когда мне приходится открывать Photoshop.

Можно утверждать, что популярность таких дизайн-приложений, как Sketch, выросла благодаря скорости. Когда вышел Sketch, он был проще, работал намного быстрее и был более ориентирован на UX-дизайн, чем почти всё, что предлагала компания Adobe. У него были проблемы с надёжностью, но мы были готовы закрыть на это глаза, потому что нам нравилось им пользоваться. Скорость может стать огромным коммерческим активом. Когда речь идёт о софте, которым люди пользуются постоянно, не стоит сбрасывать со счетов трёхпроцентное увеличение их уровня удовлетворённости от взаимодействия с продуктом.

Figma — ещё один графический редактор, похожий на Sketch или Illustrator. Несмотря на то, что Figma работает в браузере, она настолько быстрая, что я замираю от восторга всякий раз, когда использую её. Она работает так быстро, как и всё должно быть быстрым на современном компьютере, то есть молниеносно. Чувствуется, что пользователи её любят. Я знаю команды разработчиков и дизайнеров, которые работают над Figma, и знаю, что они делают это с любовью. Они сделали её ориентированной на дизайнеров, и это чувствуется. Дело не только в скорости её работы, но и в интуитивно понятном интерфейсе. То есть её инструменты работают правильнее, чем, скажем, в Illustrator. Например, возьмём инструмент Перо. В Figma Перо работает с позиции рациональности. В этом смысле скорость проявляется не только в работе программы, но и с позиции удобства для пользователя.

Карты Google умирают трагической, публичной смертью от собственной медлительности. Компания Google добавила анимацию на все карты Google Maps. По отдельности они хороши, но в совокупности работают очень медленно. Раньше Google Maps были быстрым инструментом с чёткими функциями. Теперь они постоянно тупят. Если нажать не на ту кнопку, она мычит. Можно назвать их неуклюжими, слишком сложными, неоправданно многослойными. Возможно, Google Maps пытается сделать слишком много? Чтобы выйти из некоторых режимов — например, из режима навигации — пользователю приходится нажимать на четыре или пять разных областей и выдерживать столько же медленных анимаций.

Мы терпим, потому что Google Maps — это сокровищница данных об окружающем нас мире. Это просто чудо информации и чудо приложения. Однако всё чаще эти данные скрываются за многовариантными интерфейсами, а интерфейс, похоже, меняется еженедельно. Моя интуиция подсказывает, что проблема управления картами, возможно, связана не только с трудностями в разработке. Что-то не так с самой компанией Google.

Google Maps стали настолько медленными, что я сделал немыслимое: я переустановил Apple Maps на свой iPhone. В отличие от Google Maps, Apple Maps работает оперативно. Данные по-прежнему не так хороши, как в Google Maps, но это хороший пример того, как тормознутость программы заставила меня переключиться на другое приложение, которое я уже практически списал со счетов. В дальнейшем я дам Apple Maps больше шансов.

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

Однако следует упомянуть, что Apple производит много хорошего ПО. Keynote — пожалуй, одна из лучших программ на macOS, образец мощности, заключенный в простой интерфейс. Вы можете возразить, что его предыдущая версия была проще, но нынешняя версия Keynote отлично сочетает режимы, мощность и общую простоту использования. Программа быстрая и понятная. Один из моих любимых инструментов в Keynote — The Instant Alpha*. Он отлично работает в 90% случаев. Это тот инструмент, о котором вы не знали, не понимали, что он вам необходим, и не ожидали, что он существует, но он появляется именно в тот момент, когда он вам нужен. В целом: Keynote работает быстро и выглядит тщательно проработанным приложением.

*Примечание переводчика: The Instant Alpha — функция быстрого удаления фона изображения

Но почему медленное ПО обязательно должно быть плохим? Быстрый софт не всегда работает хорошо, но медленное ПО редко способно выдавать впечатляющие результаты. Быстрое ПО даёт пользователю шанс «слиться» с набором инструментов, то есть погрузиться в состояние потока с системой. Пользователям нравятся приложения Vi и Emacs отчасти потому, что они так сильно привязаны к плавной работе приложений и им нравится их бесшовность. Их создатели хорошо постарались и считают их хорошими инструментами. Не нарушать поток — аксиома великих инструментов.

Печатная машинка — отличный инструмент, потому что, хоть она и относительно медленная, каждый отдельный её элемент работает с такой же скоростью, с которой двигается пользователь и имеет конкретную функцию. Когда вы передвигаете механизм печатной машинки, чтобы начать печать с новой строки или нажимаете на клавишу, чтобы впечатать её в бумагу, не возникает никаких задержек. Да, в конце страницы вам придётся вставить в печатную машинку новый лист бумаги, но это действие становится частью процесса её применения, а стопка листов с текстом — визуальным свидетельством выполненной работы. При использовании печатной машинки не возникает никаких фундаментальных механических задержек. Печатная машинка — физическое воплощение лучшего ПО. Конечно, она может сломаться, ленту нужно менять, но это техническое обслуживание, которое отделено от использования инструмента. Я бы с удовольствием «обслуживал» Photoshop, если бы это улучшило его работу.

Скорость проявляется и в языке софта — в буквальном смысле. Когда пользователь хочет закрыть несохраненный файл, перед ним всплывает диалоговое окно. В последние годы в macOS названия команд в этих окнах изменились. Вместо «Don’t Save, Cancel, Save» теперь человек видит «Delete, Cancel, Save». Это только мое мнение, но в тексте «Delete, Cancel, Save» меньше смысла, чем в командах «Don’t Save, Cancel, Save». Опция «Delete» подразумевает, что пользователь когда-то сохранил файл. То есть он сохранил его и забыл, что сохранил? Или это было автосохранение? Я не знаю. Как бы вы ни относились к этой команде, она вводит меня в ступор, когда вижу это диалоговое окно при закрытии несохраненного файла. Она тормозит меня. Нажатие кнопки «Delete» выглядит жестоким. Удалить. Так безапелляционно. А может, я не хочу удалять? Может, я хочу сохранить? Но нет, я просто не хочу сохранять файл и хочу выбрать «Don’t Save».

Я использую бета-версию iPadOS 13 на своем iPad. В ней есть один новый, чрезвычайно быстрый и восхитительный компонент интерфейса, который называется «Slide Over». Просто проведите пальцем направо, и — оп — приложение появится в небольшом всплывающем окне. Это мини-версия большого приложения. Она появляется по мере того, как вы проводите пальцем по экрану. Приятно двигать пальцем, и видеть под ним мгновенное появление крошечного приложения. Проведите пальцем назад, и оно исчезнет. Никакой «перерисовки» экрана. В нижней части миниатюрного приложения находится небольшая полоска. Проведите по ней пальцем, и мини-приложения будут сменять друг друга посредством быстрой и красивой анимации, которая показывает, где вы находились и куда направляетесь. Цель анимации — контекстная итерация. Тактильные ощущения. Отличные сенсорные интерфейсы воспринимаются тактильно. Лучшие «сенсорные интерфейсы», на мой взгляд, это настоящие кнопки, вещи с физическими свойствами, которые вызывают тактильные ощущения. Но испытывать тактильные ощущения на сенсорном экране, означает, двигаться без задержек.

С точки зрения скорости и юзабилити, я считаю, что Slide Over значительно превосходит разделение экрана на iPad. Разделение экрана происходит медленно. В этом режиме вам придётся нажимать, удерживать, перетаскивать, ждать, пока экран «перерисуется», а приложения «моргнут» и изменят размер. В отличие от Slide Over, складывается ощущение, что разделение экрана противоречит коду под капотом. Slide Over воспринимается, как естественное продолжение среды iPad. Пользователь может быстро перейти в этот режим, он работает предсказуемо, выглядит надёжным. Чувствуется, что его код находится в естественной синхронизации с положением устройства, соответствует скорости его работы и соизмерим с мощностью, которая скрывается под стеклом. Разделение экрана может работать, но его код, вероятно, нуждается в доработке. В идеале разделение экрана должно функционировать так же плавно и быстро, как Slide Over и напоминать тот случай, когда вы срезаете ветку сливового дерева ножницами стоимостью 1000 долларов.

Я могу продолжать до бесконечности. Но давайте закончим и напоследок рассмотрим отличный пример ПО для iOS — Things. Things на iPad и iPhone — одно из самых тактильных и быстрых приложений, которое моментально реализует все действия пользователя. Каждая анимация в нём разработана с определённой целью. Но главное, это приложение вызывает положительные эмоции. Мне интересно складывать вещи и переставлять их. Приложение достаточно старое, оно существует уже более десяти лет. Сегодня оно мне нравится также, как и десять лет назад, когда я впервые его открыл.

Интуитивно понятно, что ПО, помимо основной функциональности, должно стремиться быть быстрым. Скорость — косвенный показатель эффективности. Если часть ПО становится громоздкой, то, возможно, она не должна быть отдельной частью софта. В конечном счёте, быть быстрым, значит, быть лёгким. А быть лёгким, значит, снизить нагрузку на пользователя при выполнении задачи. Это и есть конечная цель: чтобы наши карманные суперкомпьютеры снижали нагрузку, а не увеличивали её, чтобы наши мегамощные ноутбуки обеспечивали возможность быстро работать и заниматься творчеством, а не бороться с тормознутостью системы.

Легко написать статью о быстром ПО, труднее его разработать. Но когда оно сделано, мы все будем благодарны его создателям.

Поделиться
Отправить
Запинить

Обсуждение