— Слушай, мне всегда казалось, что Тьюринг просто изобрёл компьютер. Взял и придумал машину. А теперь читаю, что он доказывал что машина чего-то не может — как это вообще вяжется?
— Вот тут самое интересное начинается, потому что кажется — понятно, а на самом деле всё перевёрнуто. Тьюринг не сидел и не мечтал о думающей машине. Он решал чисто абстрактную задачу из математической логики: «существует ли механический способ решить любую задачу?» И ответ его был: нет, не существует. Компьютер у него выпал как побочный продукт доказательства невозможности. Он не изобретал орудие — он чертил границу.
— Подожди. То есть человек шёл доказать, что машина бессильна, — и по дороге изобрёл машину?
— Именно. Чтобы сказать «вот это машина не может», ему сначала пришлось абсолютно точно сказать «вот что такое машина». И второе оказалось важнее первого.
— А что за машина-то получилась? Лампы, провода?
— Лента в клеточках и головка, которая читает один значок, пишет один значок и ездит влево-вправо. Всё. Никакого экрана, никакой памяти в нашем понимании. Только три действия: смотреть, писать, двигаться.
— Это... и есть компьютер?
— Это скелет любого компьютера, который когда-либо существовал. ChatGPT внутри — это очень-очень быстрая такая головка с лентой. И ещё одна вещь, которую Тьюринг придумал и которая перевернула всё: универсальная машина. Одна-единственная машина, которой можно скормить описание любой другой — и она прикинется ею. Это идея программируемого компьютера: одно железо плюс сменная программа. До этого «машина» — это одно устройство под одну задачу. Ткацкий станок ткёт, счётная машина считает. Тьюринг придумал машину, которая умеет прикидываться любой другой.
— Это и есть программа?
— Это и есть идея программы. Что инструкция — это просто данные на той же ленте. Вот тут и родился настоящий компьютер, а не там, где первый транзистор запаяли.
— А что за задача-то была, которую он решал? Что машина не может?
— Проблема остановки. Нельзя написать программу, которая для любой другой программы и её входных данных заранее скажет: эта остановится или зациклится навсегда. Не «трудно написать» и не «пока не придумали» — доказано невозможным навсегда, как вечный двигатель.
— Почему невозможным? Это же просто технически сложная задача.
— Нет, там хитрее. Предположи, что такая программа-предсказатель существует. Тогда построй вредную машину, которая спрашивает предсказатель про саму себя и делает наоборот: если предсказатель говорит «остановишься» — она зацикливается, если «зациклишься» — останавливается. Получается парадокс лжеца в виде кода. Предсказатель не может ответить ни так ни эдак. Значит, его не может существовать.
— Это... синий экран смерти — это математика 1936 года?
— Буквально. Из проблемы остановки следует: нельзя написать программу, которая до конца проверит любую другую на зависания и целый класс ошибок. «Программы всегда будут глючить» — это не лень программистов. Это теорема, которую аспирант доказал до того, как появился хоть один компьютер.
— И ему было двадцать три?
— Двадцать четыре. Он отвечал на абстрактный вопрос логики — а ответ стал чертежом всей индустрии. Вот тут-то и начинается самое интересное: граница, которую он нарисовал, оказалась самой точной картой территории. Он описывал предел — и получил определение.
— Ладно, с Тьюрингом понял — абстракция на бумаге. Но как это всё стало железом? Кто-то же взял и запаял первый компьютер.
— Вот тут интересно: ты думаешь, что сначала была электроника, а потом под неё подогнали логику. А всё ровно наоборот. Логика была готова за сто лет до первого транзистора.
— За сто лет?
— Джордж Буль написал «Законы мышления» в 1854 году. Он превращал человеческое рассуждение в алгебру: истина — это единица, ложь — ноль, а слова «и», «или», «не» — это операции. Восемьдесят лет это считалось красивой, но совершенно бесполезной философией. А потом появился двадцатиоднолетний студент MIT по имени Клод Шеннон.
— И что он сделал?
— Он подрабатывал с телефонными реле — такими щёлкающими переключателями, открыто или закрыто. И вспомнил странную алгебру Буля с курса философии. Озарение было простое: реле открыто — это единица, закрыто — ноль. «И», «ИЛИ», «НЕ» из алгебры Буля — это рисунок из реле. Он написал об этом магистерскую диссертацию в 1937 году. Её называют, возможно, самой влиятельной магистерской работой в истории.
— Подожди, то есть формула для процессора существовала, когда ещё лошади по улицам ходили, — просто не хватало тела?
— Именно. Логика ждала тело. А тело нашлось в электричестве. Возьми два выключателя на одной проводке, друг за другом: лампа загорится, только если включены оба. Ты только что собрал логическое «И». Два выключателя на параллельных проводах: достаточно включить любой — это «ИЛИ». А «НЕ» — выключатель наоборот, жмёшь — он закрывается. Весь компьютер — это эти выключатели, просто их миллиарды и щёлкают они сами.
— А как железо что-то помнит? Ток же течёт и утекает.
— Хитрость: заворачиваешь выход вентиля обратно ему на вход. Получается петля, которая бесконечно подтверждает сама себе своё состояние. Ноль остаётся нулём, единица остаётся единицей — пока не придёт внешний сигнал и не перепишет.
— То есть память — это схема, которая ловит себя за хвост?
— Буквально. Память — это не специальная деталь. Это та же логика, завёрнутая в петлю. И самое странное: из одного-единственного типа вентиля — НЕ-И, или NAND — можно собрать вообще всё. Любую логику, любую память, любой процессор.
— Из одного кирпича?
— Из одного кирпича. Дальше только вопрос, сколько их и как сложены. Но тут есть подвох, о котором не любят говорить. Транзистор — не идеальный «ноль или единица». На наномасштабе электроны утекают сквозь закрытый ключ — квантовое туннелирование. Бит иногда переворачивается сам от тепла. Вся инженерия в том, чтобы заставить дрожащий, шумный, квантовый мир притворяться чистыми нулями и единицами. И чем меньше транзистор, тем труднее эта ложь держится.
— Получается, ChatGPT — это в основе те же «и/или/не» из позапрошлого века?
— В самом низу — да, гора одинаковых тупых переключателей. Буль умер в 1864-м, промокнув под дождём, так и не узнав, что заложил фундамент каждого компьютера на планете. А где тогда ум? Не в кирпиче. В том, сколько их и как они сложены. Это важно держать в голове — потому что дальше начнётся история о том, как именно люди пытались сложить из этих кирпичей что-то похожее на мысль.
Первые слова этого диалога — бесплатно. Войдите, чтобы читать дальше.
Осталось 13 сцен. Следующая — «Что думали первые программисты».