Что произошло
Весна 1936 года. Кембридж. В комнате Кингс-колледжа 24-летний математик Алан Мэтисон Тьюринг (Alan Mathison Turing) заканчивает рукопись, которую читать будут немногие — но последствия которой затронут всех.
Статья называлась «On Computable Numbers, with an Application to the Entscheidungsproblem» — «О вычислимых числах, с приложением к проблеме разрешимости». За сухим заголовком скрывался ответ на один из главных вопросов математики XX века: существует ли универсальный метод, который может решить любую математическую задачу?
Вопрос поставил Давид Гильберт в 1928 году. Великий немецкий математик верил, что такой метод существует. Тьюринг доказал, что нет. Но способ, которым он это доказал, оказался важнее самого доказательства.
Чтобы дать строгое определение слову «вычисление», Тьюринг придумал мысленный эксперимент. Представьте бесконечную бумажную ленту, разделённую на клетки. В каждой клетке — символ: единица, ноль или пробел. Над лентой — головка, которая может читать символ в текущей клетке, записывать новый символ, сдвигаться на одну клетку влево или вправо. Поведение головки определяется таблицей правил: «если ты в состоянии A и видишь символ 1 — запиши 0, перейди в состояние B, сдвинься вправо». Это и есть машина Тьюринга.
Устройство выглядит до смешного примитивным. Лента, головка, таблица правил. Но Тьюринг доказал поразительную вещь: любое вычисление, которое в принципе может быть выполнено, — любой алгоритм, любая процедура, любая программа — может быть выполнено этой простой машиной. Нужно лишь подобрать правильную таблицу правил.
А затем Тьюринг сделал следующий шаг — и именно этот шаг изменил мир. Он описал универсальную машину Тьюринга — машину, которая принимает на вход описание любой другой машины Тьюринга (закодированное как последовательность символов на ленте) и имитирует её работу. Одна машина, которая может стать любой другой машиной. Не нужно строить новое устройство для каждой задачи — нужно лишь дать существующему устройству новую программу.
Вот он — момент рождения программирования. До Тьюринга вычислительные устройства были привязаны к задаче. Арифмометр Лейбница умножал числа — и только. Аналитическая машина Бэббиджа была задумана как более гибкая, но так и не была построена. Тьюринг дал математическое обоснование идеи, которая полвека спустя станет основой всей компьютерной индустрии: машина + программа = любое вычисление.
Статья была опубликована в «Proceedings of the London Mathematical Society» в ноябре 1936 года. Её прочитали несколько десятков специалистов по математической логике. Широкая публика не узнала о ней ещё десятилетия.
Контекст эпохи
1936 год — странное время для абстрактных идей. Европа скатывалась к войне. Гитлер ремилитаризировал Рейнскую область. В Испании начиналась гражданская война. В Кембридже, где Тьюринг работал, об этом знали, но занимались другим — математической логикой. Это была эпоха, когда логики, казалось, решали головоломки ради головоломок.
Но головоломка, которую решал Тьюринг, имела практическое значение, которого никто ещё не видел. Проблема разрешимости (Entscheidungsproblem) звучала абстрактно: можно ли создать процедуру, которая определит, истинно ли любое математическое утверждение? Курт Гёдель в 1931 году уже нанёс удар по этой мечте своими теоремами о неполноте, показав, что в любой достаточно мощной формальной системе есть утверждения, которые нельзя ни доказать, ни опровергнуть. Тьюринг подошёл к той же проблеме с другой стороны: через понятие вычисления.
Любопытно, что почти одновременно с Тьюрингом к тому же результату пришёл американский математик Алонзо Чёрч из Принстона — но другим путём, через так называемое лямбда-исчисление. Два подхода оказались эквивалентными: всё, что можно вычислить лямбда-исчислением Чёрча, можно вычислить машиной Тьюринга, и наоборот. Это совпадение породило тезис Чёрча-Тьюринга: интуитивное понятие «алгоритм» точно соответствует формальному понятию «функция, вычислимая машиной Тьюринга». Тезис не доказан (и, строго говоря, не может быть доказан — он связывает формальное понятие с интуитивным), но за 90 лет не найдено ни одного контрпримера.
После публикации статьи Тьюринг уехал в Принстон — работать с Чёрчем. Получил степень PhD. Вернулся в Англию в 1938 году — как раз к началу войны. С 1939 по 1945 год работал в Блетчли-Парке — секретном центре дешифровки, где взламывали немецкую «Энигму». Именно там абстрактные идеи 1936 года начали превращаться в железо. Тьюринг и его коллеги построили электромеханические машины Bombe, которые перебирали варианты ключей шифрования — по сути, выполняли алгоритм. Эти машины не были компьютерами в полном смысле (они не были универсальными), но показали: машина, следующая программе, решает задачи, непосильные для человека.
После войны Тьюринг проектировал ACE (Automatic Computing Engine) в Национальной физической лаборатории — один из первых проектов компьютера с хранимой программой. Параллельно в Манчестере строили Manchester Baby (1948) — первый работающий компьютер, который хранил программу в электронной памяти. Архитектура хранимой программы, предложенная Джоном фон Нейманом (и основанная на идеях Тьюринга), стала стандартом: все современные компьютеры — от смартфона до суперкомпьютера — работают по принципу «машина + программа в памяти».
Значение для UX
Связь между абстрактной машиной 1936 года и пользовательским опытом кажется далёкой. Но она фундаментальна.
Без программирования нет интерфейса. Машина Тьюринга обосновала разделение аппаратуры и программы. Это разделение — причина, по которой ваш смартфон может быть и навигатором, и фоторедактором, и мессенджером. Аппаратура одна — программы разные. Каждая программа — это интерфейс. Каждый интерфейс — это UX. Без идеи программирования мы жили бы в мире одноцелевых устройств: отдельный прибор для каждой задачи. Тьюринг сделал возможным мир, где одно устройство решает тысячи задач — и каждая задача требует своего проектирования взаимодействия.
Алгоритмическое мышление и дизайн взаимодействия. Машина Тьюринга — это последовательность шагов: прочитай, реши, запиши, перейди. Любой пользовательский сценарий описывается точно так же: пользователь видит экран, принимает решение, совершает действие, переходит к следующему состоянию. UX-дизайнеры проектируют потоки (flows) — по сути, алгоритмы для человека. Закон Хика описывает, как количество вариантов влияет на скорость решения; закон Фиттса — как расстояние и размер влияют на скорость действия. Оба закона описывают «шаги» человеческого алгоритма.
Тест Тьюринга и разговорные интерфейсы. В 1950 году Тьюринг опубликовал ещё одну статью — «Computing Machinery and Intelligence», — где предложил тест Тьюринга: если в текстовом диалоге человек не может отличить машину от собеседника-человека, машину можно считать мыслящей. Тьюринг не решал вопрос о «настоящем» интеллекте — он предложил операциональный критерий, основанный на поведении. Этот подход предвосхитил целую ветвь UX: чат-боты, голосовые помощники, разговорные интерфейсы. Каждый раз, когда Siri или Алиса отвечают на вопрос так, что пользователь забывает, что говорит с программой, — реализуется идея Тьюринга.
Пределы вычислимости и пределы автоматизации. Тьюринг доказал не только то, что можно вычислить, но и то, что нельзя. Проблема остановки (halting problem) — невозможно создать алгоритм, который для произвольной программы определит, завершится она или зациклится. Это не техническое ограничение — это математический закон. Для UX это напоминание: не всё можно автоматизировать. Не всё можно предсказать. Не всё можно оптимизировать алгоритмом. Иногда нужен человек — его суждение, его интуиция, его эмпатия. Человекоцентричный дизайн начинается с признания: машина мощна, но у её мощи есть границы.
Алан Тьюринг не дожил до компьютерной революции. В 1952 году он был осуждён за гомосексуальность — тогда в Великобритании это было уголовным преступлением. Ему назначили принудительную химическую кастрацию. 7 июня 1954 года Тьюринг умер от отравления цианидом — предположительно, это было самоубийство. Ему было 41.
В 2013 году королева Елизавета II посмертно помиловала Тьюринга. В 2021 году его портрет появился на банкноте в 50 фунтов стерлингов. Но настоящий памятник Тьюрингу — каждый компьютер на планете, каждая программа, каждый интерфейс. Всё это — следствие идеи, которую 24-летний математик записал в кембриджской комнате в 1936 году: машина, которая следует инструкциям, может сделать всё, что в принципе вычислимо. Нужно лишь написать правильную программу.
Связанные статьи
Машина Тьюринга — теоретический фундамент всей вычислительной техники, связанный с множеством концепций UX:
- Что такое UX — без концепции программирования не существовало бы программного обеспечения и цифровых интерфейсов. Тьюринг сделал возможным мир, в котором понятие «пользовательский опыт» имеет смысл.
- Закон Хика — пользовательские сценарии — это алгоритмы для человека. Закон Хика описывает один из «шагов» этого алгоритма: время выбора из нескольких вариантов.
- Закон Фиттса — ещё один «шаг» человеческого алгоритма: время наведения на цель определяется расстоянием и размером.
- Что такое человекоцентричный дизайн — Тьюринг доказал, что у вычислений есть пределы. HCD начинается с признания, что не всё можно автоматизировать — иногда решение должен принимать человек.
Из других статей серии «История UX»:
- Первые ЭВМ — от ABC до ENIAC (1939–1945) — идеи Тьюринга через несколько лет воплотились в железе. ENIAC, Colossus, ACE — все они потомки абстрактной машины 1936 года.
- Вэнивар Буш и Memex (1945) — пока Тьюринг думал о вычислениях, Буш думал о навигации по знаниям. Два разных подхода к машинному расширению человеческих возможностей, которые встретились в персональных компьютерах.
- Перцептрон Розенблатта (1957–1960) — от теста Тьюринга («может ли машина мыслить?») к перцептрону Розенблатта («может ли машина учиться?»): следующий шаг к искусственному интеллекту.