Закон Теслера и NeXT: сложность неизбежна (1985)

Что произошло

1985 год. Два события, на первый взгляд не связанных друг с другом, определяют траектории, которые пересекутся через десятилетие и сформируют цифровой мир, в котором мы живём.

Закон Теслера. Ларри Теслер (Larry Tesler), к 1985 году уже легенда Кремниевой долины, формулирует принцип, который назовут его именем: закон сохранения сложности. Суть: для любой системы существует определённый уровень сложности, который невозможно устранить. Его можно только перераспределить — между пользователем и системой.

Теслер знал, о чём говорил. Он пришёл в Xerox PARC в 1973 году и работал над Smalltalk — языком программирования и средой, которая легла в основу графического интерфейса Alto. Именно Теслер в 1973 году провёл сеанс юзабилити-тестирования, показав Smalltalk секретарям PARC, — и обнаружил, что непрофессионалы используют компьютер совсем не так, как проектировщики ожидали. Именно Теслер демонстрировал Alto Стиву Джобсу во время знаменитого визита в Xerox PARC в декабре 1979 года.

Но главное изобретение Теслера — cut, copy, paste. Вырезать, копировать, вставить. Три операции, которые сегодня выполняются миллиарды раз в день на каждом компьютере, телефоне и планшете мира. До Теслера перемещение текста между документами требовало сложной последовательности команд. Теслер свёл это к трём жестам — и каждый из этих жестов стал настолько привычным, что мы перестали замечать их гениальность.

Теслер также был непримиримым противником модальных интерфейсов — систем, в которых одно и то же действие пользователя приводит к разным результатам в зависимости от текущего «режима». В текстовом редакторе vi, например, нажатие клавиши «d» в командном режиме удаляет строку, а в режиме ввода — печатает букву «d». Теслер считал это источником ошибок и путаницы. Его калифорнийский номерной знак гласил «NO MODES» — без режимов. Немодальность стала принципом Macintosh: нажатие клавиши всегда печатает символ, команды выполняются через меню или клавиатурные сочетания.

Закон сохранения сложности звучит как физический закон — и Теслер сознательно использовал эту аналогию. Как в термодинамике нельзя уничтожить энергию — только преобразовать, — так в проектировании нельзя уничтожить сложность — только переместить. Автоматическая коробка передач проще для водителя, но сама по себе несравнимо сложнее механической. Автозаполнение в поисковой строке экономит пользователю секунды — за счёт терабайтов данных и тысяч серверов на стороне системы. «Простой» интерфейс iPhone скрывает миллионы строк кода.

Вопрос не в том, можно ли убрать сложность. Вопрос в том, кто её несёт. И это — фундаментальное решение дизайнера.

Основание NeXT. 17 сентября 1985 года Стив Джобс покинул Apple. Формально — ушёл сам. Фактически — был отстранён от управления после конфликта с CEO Джоном Скалли и советом директоров. Человек, представивший Macintosh миру восемнадцать месяцев назад, оказался за дверью компании, которую основал в гараже.

Через пять дней Джобс основал NeXT, Inc. Цель — создать идеальный компьютер для высшего образования и бизнеса: мощный, элегантный, с лучшим в мире программным обеспечением.

NeXT Cube появился в 1988 году. Цена — $6 500 (втрое дороже Macintosh). Чёрный магниевый куб с гранью в один фут. Внутри — процессор Motorola 68030, оптический диск вместо жёсткого (экспериментальное решение, оказавшееся неудачным), и операционная система NeXTSTEP — главное достижение компании.

NeXTSTEP была написана на Objective-C и использовала объектно-ориентированную архитектуру, опередившую время на десятилетие. Её графический интерфейс — Dock внизу экрана, вертикальные меню, окна с заголовками — выглядел иначе, чем Macintosh, но был продуман до мельчайших деталей. Разработчики могли создавать приложения визуально — перетаскивая элементы интерфейса в конструкторе Interface Builder. Это было невиданной роскошью в мире, где интерфейсы программировались вручную, строка за строкой.

NeXT как бизнес провалился: за всё время существования компания продала около 50 000 компьютеров. Но два события превратили «неудачу» в фундамент цифрового мира.

Первое. В 1990 году британский учёный Тим Бернерс-Ли, работавший в CERN, создал на компьютере NeXT первый веб-браузер (он назывался WorldWideWeb) и первый веб-сервер. На корпусе машины Бернерс-Ли наклеил стикер: «This machine is a server. DO NOT POWER IT DOWN!!» Всемирная паутина родилась на NeXT — не случайно, а потому что NeXTSTEP позволяла разрабатывать сложные приложения быстрее, чем любая другая платформа.

Второе. В 1997 году Apple, находившаяся на грани банкротства, купила NeXT за $429 миллионов. Джобс вернулся — сначала как советник, затем как CEO. NeXTSTEP стала основой Mac OS X (2001), а затем — iOS (2007). Каждый iPhone, iPad и Mac работает на потомке NeXTSTEP. Objective-C — язык, на котором была написана NeXTSTEP, — оставался основным языком разработки Apple до появления Swift в 2014 году.

Контекст эпохи

1985 год — водораздел. IBM PC доминирует на корпоративном рынке, Microsoft готовит Windows 1.0 (выйдет в ноябре 1985-го — примитивная оболочка поверх DOS, далёкая от Macintosh). Apple без Джобса теряет фокус. Графический интерфейс победил — но ещё не ясно, чей именно.

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

Оба подхода дополняют друг друга. NeXTSTEP была воплощением закона Теслера: невероятно сложная система внутри, обеспечивающая простоту снаружи. Interface Builder позволял разработчику собирать интерфейс визуально — но за этой визуальностью стояла сложнейшая объектно-ориентированная архитектура, которую кто-то должен был спроектировать и реализовать.

Значение для UX

Закон Теслера — один из фундаментальных принципов проектирования интерфейсов, стоящий в одном ряду с Законом Хика и эвристиками Нильсена.

Сложность как бюджет. Закон Теслера заставляет дизайнера думать о сложности как о ресурсе, который нужно распределять. Каждая «простая» функция для пользователя — это сложность, перенесённая на сторону системы. Умный дизайнер выбирает, где именно разместить эту сложность, а не пытается её уничтожить. Связь с Бритвой Оккама очевидна: не добавляй сущности сверх необходимого — но признай, что необходимый минимум существует и его нельзя обнулить.

Немодальность как стандарт. Борьба Теслера с режимами повлияла на все современные интерфейсы. Сегодня модальные диалоговые окна считаются антипаттерном, а принцип «одно действие — один результат» заложен в базовые гайдлайны всех платформ.

NeXTSTEP → macOS → iOS → мобильный UX. Линия преемственности от NeXT к iPhone — прямая и задокументированная. Dock, визуальный конструктор интерфейсов, объектно-ориентированная архитектура приложений — всё это родилось в NeXT и живёт в каждом устройстве Apple. А через Safari и WebKit — влияет на весь веб.

1985 год научил индустрию двум вещам. Теслер: не обещай пользователю «простоту» — обещай, что сложность возьмёт на себя система. Джобс: если берёшься нести сложность — делай это так, чтобы никто не заметил.

Связанные статьи

  • Закон Хика — время принятия решения растёт с количеством вариантов. Закон Теслера дополняет Хика: уменьшая количество вариантов для пользователя, вы перемещаете сложность выбора на сторону системы.
  • Эвристики Нильсена — эвристика «Предотвращение ошибок» напрямую связана с немодальностью Теслера: модальные интерфейсы провоцируют ошибки, немодальные — предотвращают.
  • Бритва Оккама — принцип минимальной сложности XIV века. Закон Теслера уточняет: существует предел упрощения, ниже которого опуститься невозможно.

Из серии «История UX»:

Вопросы и ответы

Что такое закон Теслера (закон сохранения сложности)?

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

Кто такой Ларри Теслер и что он изобрёл?

Ларри Теслер (1945–2020) — учёный-информатик, работавший в Xerox PARC, Apple, Amazon и Yahoo. Он изобрёл операцию cut/copy/paste (вырезать/копировать/вставить), ставшую универсальной для всех интерфейсов. Теслер также был главным сторонником немодальных интерфейсов — систем, где одно и то же действие пользователя всегда приводит к одному и тому же результату, независимо от текущего «режима». Его номерной знак в Калифорнии гласил «NO MODES».

Как NeXT повлиял на современные интерфейсы?

NeXT, основанный Стивом Джобсом в 1985 году после ухода из Apple, создал операционную систему NeXTSTEP с революционным графическим интерфейсом. Когда Джобс вернулся в Apple в 1997 году, NeXTSTEP стала основой Mac OS X, а затем — iOS. Кроме того, именно на компьютере NeXT Тим Бернерс-Ли в 1990 году создал первый веб-браузер и веб-сервер. Таким образом, NeXT — прямой предок и современного macOS/iOS, и Всемирной паутины.