Что насчет квантовых компьютеров, которые сейчас на пике популярности? Разве квантовые компьютеры умеют что-то такое, что не умеют обычные? И да и нет. Они умеют одновременно решать множество задач и вычислять множество значений, благодаря “квантовой суперпозиции”, причудливому и необычному свойству, которое гласит, что ненаблюдаемая сущность может одновременно пребывать во “всех возможных” состояниях, пока наблюдение не приведет к “коллапсу волновой функции”. (Подробнее об этом почитайте в своей любимой научно-популярной книге по физике или на познавательном сайте.) По сути, квантовый компьютер не что иное, как последняя и весьма впечатляющая инновация – можно сказать, квантовый скачок – в скорости обработки данных. Машина Тьюринга, движущаяся по бумажной ленте, и регистровая машина, неутомимо инкрементирующая и декрементирующая отдельные регистры, крайне ограничены в том, что они могут сделать за короткое время – минуты, часы или дни. Суперкомпьютер вроде Fujitsu K может делать все то же самое в триллионы раз быстрее, но для решения некоторых задач, особенно из области криптографии, этой скорости все равно недостаточно. Именно в этой сфере может пригодиться сверхбыстрый квантовый компьютер – если, конечно, люди сумеют решить невероятно сложные инженерные проблемы, возникающие при попытке создания стабильного и практичного квантового компьютера. Возможно, создать его так и не удастся, и тогда нам придется довольствоваться какими-то квадриллионами флопс.
25. Виртуальные машины
Реальные машины состоят из материальных подвижных частей и, как правило, называются в соответствии с задачами, для выполнения которых они сконструированы. Дизайн газонокосилок, открывашек и кофемолок бывает разным. Порой в основе их работы даже лежат разные физические принципы, но кое-что остается неизменным: машины, которые называются одинаково, выполняют более или менее одинаковую работу. Возможно, некоторые из них выполняют ее лучше других, но все зависит от предпочтений пользователя. Домовладелец может выбрать медленную газонокосилку, которая работает тише; владелец кафе может выбрать кофемолку, которая имеет больше степеней помола, пускай пользоваться ею и сложнее. Некоторые машины универсальны: надев другую насадку, можно превратить дрель в пилу или шлифовальную машинку. Компьютеры тоже универсальны, но могут делать не десяток, а целую тучу разных вещей. Вместо того чтобы надевать для выполнения каждой задачи новую насадку, вы открываете новую программу – очень длинную последовательность нулей и единиц, – которая ставит все необходимые внутренние переключатели в нужное положение, чтобы выполнить задачу. Каждая схема настройки – это уникальная машина, уникальная виртуальная машина, машина “из инструкций”, а не из подшипников, шестеренок, блоков и проводов. В компьютерах инструкции могут заменять блоки и шестеренки, потому что вместо хлебного теста, целлюлозы и стальных болванок компьютеры обрабатывают информацию, а информацию всегда можно перевести в двоичный код, состоящий из нулей и единиц, единственный код, который компьютер может – и имеет необходимость – “читать”. Микросхемы на кремниевых подложках манипулируют триллионами этих нулей и единиц, временно открывая и закрывая шлюзы, переводя потоки информации к той или иной микросхеме и таким образом контролируя, что с ней происходит. Миллионы крошечных элементов аппаратного обеспечения, которые могут принимать одно из двух состояний – 0 или 1, – это единственные “подвижные части” машины, и от настроек тысяч или миллионов этих крошечных элементов зависит то, какой именно машиной является компьютер в конкретный момент времени.