Что, если современные компьютеры работали бы на троичной логике
История не терпит сослагательного наклонения — даже история компьютеров. Так что не показывайте эту статью историкам и на всякий случай компьютерам.
cottonbro / pexels
Наименьший элемент, атом всего IT — это цифровой логический переключатель. Он получает на вход сигнал «0» или «1» и возвращает тоже ноль либо единицу.
Какие бы задачи ни решали с помощью компьютеров, но под капотом, на самом нижнем уровне, они всё равно сводятся к преобразованию этих двух чисел друг в друга.
Компьютерная логика — двоична. «Истина или ложь», «быть или не быть», «третьего не дано» — такая категоричность восходит ещё к силлогизмам Аристотеля и имеет свои недостатки.
Первые вычислительные машины разрабатывали в середине XX века. Когда решали, какими они будут, к двоичной логике накопилось уже немало претензий. Компьютеры могли быть другими.
«Сетунь» и синдром «Спутника»
Если бы мы снимали кино по этой истории, то по законам жанра оно открывалось бы масштабной вступительной сценой. Из таких обычно нарезают кадры для трейлера, хотя с сюжетом они чаще всего связаны слабо.
В центре нашей сцены — советский «Спутник». Космическая компьютерная графика под «бип-бип-бип» и музыку Свиридова, аршинные заголовки в газетах; советские инженеры, празднующие выход аппарата на орбиту; жители западных стран, тревожно глядящие в небо.
А за кадром — мрачный голос приглашённой звезды. Это был бы Стивен Кинг с отрывком из книги «Пляска смерти» — о том, как его ужаснула новость о полёте «Спутника» в октябре 1957 года.
Реакцию западных стран на этот запуск принято называть «Спутниковым кризисом». По его итогам правительство США усилило исследования космоса, а также финансирование вооружений, разведки, науки и образования в областях, с ним связанных.
Вычислительных машин это коснулось напрямую: свежесозданным NASA и DARPA требовались лучшие компьютеры, алгоритмы и программисты.
Поэтому, когда в 1959 году американцы узнали, что в МГУ построили ЭВМ с троичной логикой и загадочным названием «Сетунь», они весьма ей заинтересовались. Конечно, она не произвела такого фурора, как «Спутник», но само её существование открывало дорогу западным разработкам в области троичной логики.
Сейчас мы знаем, что начинания эти не привели к успеху ни на Западе, ни у нас. Причины этого по обе стороны железного занавеса были на удивление схожи: сложность предмета, отсутствие элементной базы, косность специалистов, волокита и жадность чиновников1.
Но всё-таки: а что, если бы тогда компьютеры стали не двоичными, а троичными? В каком мире мы бы сегодня жили?
Временно отключим внутреннего скептика и пессимиста и оценим самые вероятные перемены.
Компьютеры: проще, быстрее, дешевле
😏 Вероятность: 3/5
Базовый элемент двоичного компьютера, бит, заключает в себе два вида сигналов (0 и 1). Трит, базовый элемент троичного компьютера, — соответственно, три (например, −1, 0, 1).
Трит содержит примерно в полтора раза больше информации, чем бит. Проще говоря, бит «уменьшает незнание» об исследуемом объекте в два раза, а трит — уже в три раза.
Это означает, что для выполнения одинаковых задач троичному компьютеру нужно меньше логических элементов, чем двоичному. Например, для определения знака числа достаточно одного троичного элемента, а двоичных потребуется два.
Физически троичный элемент, конечно, сложнее и дороже двоичного, особенно на первых порах разработки. Однако в пересчёте на одно устройство их бы и требовалось меньше. Также можно предполагать, что новые материалы и массовое производство свели бы эту разницу к нулю.
Меньшее количество элементов, в свою очередь, ускоряет обработку информации, повышает надёжность, сокращает энергопотребление и тепловыделение, а также снижает стоимость. Ваши смартфон, ноутбук, десктоп, телевизор, фитнес-браслет стали бы легче, быстрее, холоднее и дешевле.
Компьютер «Сетунь» был бы не пасхалкой из ролика про русскую кибердеревню, а вполне типовым первым компьютером из большой и длинной промышленной линейки. Тем более что он уже тогда стоил дешевле и работал надёжнее, чем западные аналоги, хотя и в десятки раз медленнее.
Временно изгнанный скептик: упорно кричит что-то про рентабельность и дороговизну производства. Мы его игнорируем и вам советуем.
Программирование: естественнее
Вероятность: 3/5
Троичное основание вычислений, по мнению создателя «Сетуни», более естественно, поскольку многие вопросы в реальности предполагают тройственный, а не двойственный ответ:
- Увеличить / Не изменять / Уменьшить;
- Вперёд / Стой / Назад;
- Победа / Ничья / Поражение;
- Дружественный / Нейтральный / Враждебный;
- Избыток / Норма / Недостаток.
И так далее.
Декомпозиция задач, то есть разбиение их на более простые подзадачи, понятные компьютеру, стала бы менее формальной, более гибкой и доступной обычному здравому смыслу. Это значит, что языки программирования и работу с компьютером освоило бы больше людей и за меньшее время.
Учитывая, что до 1980-х годов женщин в информатике было столько же, сколько мужчин, то, скорее всего, они отстояли бы паритет. Если вообще не превратили профессию программиста в преимущественно женскую: уж чего-чего, а здравого смысла у наших мам и бабушек всегда хватало.
И… тут даже не знаем, что дальше: слишком много вариантов. «Хабр» становится «Одноклассниками»? Мемы про мужскую логику? Долгопрудный — город невест?
Лишённый голоса пессимист: мрачно и шовинистически кивает.
Программы: разнообразнее
😊 Вероятность: 4/5
Программы, как и компьютеры, тоже состоят из простейших элементов — операций над числами или функций от значений. Функция или операция — это закон, который определённым образом преобразует входные значения, одно или несколько.
Так, квадратичная функция возводит входящее значение в квадрат, а операция сложения из двух значений делает их сумму.
В двоичной логике тоже есть функции и операции, которые по определённым правилам преобразуют нули и единицы снова в нули и единицы. Двоичных операций с одним входящим значением всего четыре:
- Полное зануление: независимо от того, ноль поступил на вход или единица, операция выдаёт ноль.
- Возврат единицы: превращение любого входного значения в единицу.
- Отрицание: если на входе ноль, то результат единица, и наоборот.
- Повторение: просто возвращает то, что поступило на вход.
В троичной же логике число возможных операций над одним входящим значением возрастает до 27. Они перечислены в табличке ниже. Плюс и минус указаны вместо 1 и −1, ноль остался нолём.
В случае двухместных (принимающих на вход два значения) операций разница возрастает на порядки: 16 вариантов в двоичной логике и, приготовьтесь, 19 683 в троичной. Девятнадцать тысяч шестьсот восемьдесят три!
Такое разнообразие уже среди базовых способов обработки информации позволяет надеяться, что для любой задачи в итоге обязательно найдётся оптимальный способ решения. А в процессе такого поиска мы бы создавали много очень разных программ.
Изгнанные скептик и пессимист: подражают звукам зоопарка.
День программиста: 31 августа
😅 Вероятность: 5/5
День программиста сейчас, в нашей двоичной реальности, отмечают в 256-й день года. Число 256 (28) выбрано потому, что это максимальная целая степень числа 2, значение которой не превышает числа дней в году.
Если бы компьютеры были троичными, то максимальная степень тройки, подчиняющаяся похожему условию, равнялась бы 243 (35). В невисокосный год праздник выпадал бы на 31 августа, аккурат перед Днём знаний. Совпадение? Не думаем.
Впрочем, пятая степень числа 3 — не слишком логичная дата. Вполне возможно, что праздник отмечался бы третьего марта (03.03) или, ещё лучше, в третью среду каждого третьего месяца. Главное, чтобы не раз в три года.
Внутренний пессимист: купается в фонтане из SimCity.
Квантовый компьютер: ближе и доступнее
😟 Вероятность: 2/5
Квантовый компьютер в теории позволяет вычислить сразу все возможные состояния рассматриваемого объекта — например, системы уравнений или молекул вещества. Он может во много-много раз ускорить всё высокотехнологичное производство.
Основой квантовых вычислений является кубит — квантовый бит. У него, как и у обычного бита, два возможных состояния, но вдобавок к ним есть и третье — состояние суперпозиции. Правда ведь, похоже на обычный неквантовый трит, упомянутый выше?
Поэтому в мире троичных компьютеров люди быстрее дошли бы до идеи кубита и реализации квантового компьютера. Квантовые вычисления попросту становятся привычнее, ими занимается больше людей, и отрасль развивается быстрее, раньше попадая под действие закона Мура.
Так что вероятные выгоды от внедрения квантовых компьютеров ждали бы нас уже сегодня: персонализированные лекарства, вещества и материалы с заранее заданными свойствами, массовый беспилотный транспорт; возможно, настоящий искусственный интеллект.
И, конечно, никакого коронавируса.
Внутренний скептик: демонстративно надевает маску.
А что ещё?
Только о приходе квантовых компьютеров и его последствиях можно написать уйму статей. Например, у нас была бы другая криптография, потому что практически все сегодняшние шифры мощный квантовый компьютер способен взломать буквально за доли секунд (спасибо алгоритму Шора).
А это означает другую связь (включая Интернет), новые подходы к безопасности, иные дипломатию и банковскую систему. Не было бы и блокчейна в его сегодняшнем виде, а развивался бы другой, постквантовый блокчейн.
Что касается нетехнических последствий, то, думается, Виктор Пелевин не написал бы, что «в реальности возможных ответов всегда три», — все бы знали это и без него. А потому — хочется верить — и конфликтов между людьми разных взглядов, поколений и убеждений было бы меньше.
Так, отказ от бинарности, например, в гендерной идентификации и связанных с ней языковых категориях, сегодня не был бы столь взрывным, воспринимался мягче. Поколения, не заточённые внутри железной логики «или-или», были бы избавлены от бунта против условностей и жёсткого неприятия любой непохожести.
Наконец, наши курсы и профессии направления «Программирование» стали бы совсем другими. В чём мы уверены — так это в том, что точно так же старались бы сделать их ещё увлекательнее, содержательнее и полезнее. Приходите! Для начала разберёмся с двоичными компьютерами, а там и Троичная эра подоспеет.