Диалоговый режим появился не одновременно с появлением вычислительных машин. Напротив, в течение первых 10 лет работы электронного мозга любое вмешательство в ход машинного счета строжайше запрещалось. Грозное табу предписывало: программа обязана "прокрутиться" в ЭВМ от начала до конца и отпечатать результаты. Потом можно посмотреть, что получилось. Потом! Но не по ходу дела. Потом программист обрадуется удаче либо огорчится неуспехом. И найдет, в чем ошибка, и устранит ее, и отобьет исправленную программу на перфокартах, и введет ее в машину, и вновь запустит ЭВМ. И снова войдет в силу табу: руками не трогать, действующая программа неприкасаема, не мешать, компьютер работает!
У этого табу есть свои серьезные основания: машина действует очень быстро, а человек очень медленно, пока человек надумает вмешаться, машинный счет будет окончен, а если и не окончен, то нужный момент все равно упущен. Табу экономит машинное время. Прочь дефектную деталь с главного конвейера, некогда ее подправлять, задержится вся сборка! Пусть программист не спеша потом корректирует свою программу где-нибудь в сторонке, а машина в освободившееся время обработает сто других программ. Так?
Оно, конечно, так, но только в случае хорошо определенных задач, в случае, когда есть четкий алгоритм и вся загвоздка в ошибках человека. А если при разработке программы заранее не видны пути решения задачи, не ясно, как повернется дело, если задача плохо определена?...
Тогда машине не обойтись без человека, тогда - долой табу! УЧЕНИК был одной из первых программ, которая запрашивала дополнительные данные у человека, останавливала машину и ждала ответа, не считаясь с расходами.
Расточительный УЧЕНИК не берег машинное время; ему сие прощалось как новичку, да и то в первое время. Допустить, чтобы большая вычислительная машина неопределенно долго ждала ответов человека, ничего не делая, было бы несерьезно. Лучше как-то занять свободные промежутки компьютерного времени, пусть вяжет, что ли, как продавщица в малопосещаемом отделе магазина.
Только является покупатель, продавщица (в идеале) прерывает вязание и берется обслуживать человека. Добро! И машину можно оснастить прерывателем: пока человек думает, она решает другую задачу, как начал отвечать - прерывается, прячет промежуточные результаты и послушно сотрудничает с пользователем.
Машинное время станет дробиться: кусок для одной задачи, кусок для другой; число задач не ограничивается, конечно, двумя, их будет столько, сколько "потянет" машина. Или - еще интереснее! - это будут не задачи, а люди.
У каждого человека свой пульт для общения с компьютером, каждый решает свою проблему, а машина... что ж, машина повысилась в чине, стала системой коллективного пользования с разделением времени, или сокращенно СРВ.
Диалог - любимое дитя СРВ; она не ограничивается беседой с одним человеком, а ведет сразу множество диалогов да еще использует клочки свободного времени себе на пользу.
Наша ДУНЯ родилась уже во времена СРВ и не случайно именуется Личным Помощником 5. В этой же машине одновременно работают многие Личные Помощники, которые оказывают помощь одновременно нескольким людям.
Каждый диалог "человек - ЭВМ" опирается на сценарий - особую программу, руководящую ходом диалога и соблюдающую этикет диалога. Сценарий ДУНИ вежлив, деликатен, доброжелателен. Ему мы обязаны, в частности, тем, что ДУНЯ назвала плавленый сырок "отличной начинкой" (не обидела хозяйку, а поддержала ее), но одновременно перечислила подлинно хорошие начинки. Его влияние сказалось и в других репликах программы. Сценарий ДУНИ нетороплив - две или пять лишних минут здесь не в счет.
Другие сценарии, например, сценарий АРГО, стеснены во времени. У ДУНИ время комфортное, рассчитанное лишь на удобства домашней хозяйки; у АРГО время реальное, диктуемое невозможностью прервать производство энергии и опасностью аварий.
Удобства для человека-оператора сценарий АРГО добивается сокращением работы человека и увеличением машинной работы. Если со временем вольготно, человек входит во все подробности управления энергетическим агрегатом; если время поджимает, сценарий предлагает сжатый обмен, а когда совсем не хватает времени, машина советуется с человеком лишь по ключевым пунктам проблемы, остальное делает сама.
Сценарий - движущая пружина диалога; он задает ритм развития, он ответствен и за диалоговые "а что, если...". В предыдущей главе нам уже встречались сценарии: маленькие, трафаретные, скучные истории.