Одним из символов Нового Года для меня всегда был (и до сих пор остаётся) прекрасный мюзикл «Чародеи». И дело не только в хороших песнях, отличном актёрском составе или атмосфере сказки. Фильм «Чародеи» — это ещё один взгляд на любимый многими мир книги «Понедельник начинается в субботу» братьев Стругацких. Авторами сценария фильма тоже были они (хотя многое в нём пришлось переделать вопреки их оригинальной идее).
«Что все эти размышления делают на Хабре?» — спросите вы. Ну, во-первых, на дворе Новый Год, а во-вторых, «Понедельник начинается в субботу» — это книга для программистов («Сказка для научных сотрудников младшего возраста») и о программистах (профессия главного героя книги). Уже на первой странице книги мы видим, например,
Фильм тоже показывает нам волшебство как результат сложной и наукоёмкой деятельности простых, в общем-то, людей. Никаких тут тебе „ты был рождён в семье волшебников и унаследовал дар...“ и прочих философских камней и корня мандрагоры. Лаборатория Абсолютных Неожиданностей в фильме выглядит как классический вычислительный центр любого НИИ тех лет:
А теперь я хочу рассказать об одном вопросе, связанном с информационными технологиями в данном фильме, который интересовал меня уже много лет и для решения которого я даже писал письмо Борису Стругацкому, когда он был ещё жив (хотя и не получил ответа). При каждом из многочисленных просмотров фильма „Чародеи“ меня удивлял в нём один эпизод (осторожно, под катом будут спойлеры!).
На 44-ой минуте второй серии один из главных героев фильма Иван Пухов ворует волшебную палочку и пытается воспользоваться ею для налаживания отношению с заколдованной возлюбленной — Алёнушкой. К сожалению, в виду недостатка информированности (никто не читает документацию!) Иван не знает о том, что данная функция палочкой не поддерживается и несколько ломает окружающую реальность (дом). Подоспевшие товарищи просят Ивана успокоиться и (внимание!) отменить все сделанные изменения, для чего предлагается волшебной палочкой нарисовать в воздухе латинскую букву Z. Иван следует совету, все изменения откатываются:
Термины „отменить изменения“ и отсылка к латинской букве Z в сегодняшнем мире вызывают стойкую аналогию с функцией Undo и соответствующей ей комбинацией клавиш Ctrl+Z. Но что делает эта комбинация в советском мюзикле о волшебниках, снятом в 1982-ом году? Упоминают ли герои фильма букву Z осознанно, с отсылкой к функции Undo, откуда-то им знакомой, или это просто совпадение? Давайте разбираться.
Прежде всего, давайте выясним на каком железе и софте работает Лаборатория Абсолютных Неожиданностей, сотрудниками которой являются Ковров и Брыль, упоминающие отмену действия и букву Z. Внимательный просмотр фильма приносит нам вот эту находку:
За спиной героев находится компьютер ЕС 1045, одна из моделей, входивших в „Единую систему электронных вычислительных машин“, которая разрабатывалась и выпускалась в СССР с 1971-го года.
Почитать о ней можно в Википедии или публикации 3dnews.
Конкретно модель ЕС 1045 выпускалась с 1979-го года, обладала производительностью до 800 000 операций в секунду и ОЗУ до 4 МБ. Всего таких маших было построено 1865 штук, так что на момент съёмки (1982-ой год) Лабораторию Абсолютных Неожиданностей можно считать достаточно неплохо оснащённой.
С железом разобрались. Теперь переходим к софту. Тут нужно вспомнить почему и как разрабатывались компьютеры серии ЕС ЭВМ и их софт. В виду недостаточности ресурсов СССР для разработки с нуля аппаратной и программной платформ, сравнительных по своим возможностям с продукцией западного мира, было принято решения создавать и железо и софт совместимыми с очень популярными и распространёнными на то время мейнфреймами серий IBM System/360 и IBM System/370. Это давало возможность „подсматривать“ правильные технические решения, использовать уже готовую периферию, анализировать исходный код программ, запускать оригинальный софт от IBM (которого по меркам тех годов существовало невероятно много). Кое-какой код был даже в открытом доступе (или доступен в исходных кодах после покупки), что позволяло дорабатывать ПО под свои нужды, а не писать его с нуля.
Самой важной особенностью в этом всём была, конечно же, возможность запустить на созданном железе оригинальные операционные системы от IBM, что, по словам Википедии, зачастую и происходило в реальной работе, поскольку „в них присутствовало гораздо меньшее количество ошибок, они обладали лучшими характеристиками производительности и надежности“. Т.е. существовали системы, как работающие на оригинальной ОС ЕС, так и нелегально бегающие на IBM System/360 или IBM System/370.
Что именно работал на компьютере, показанном в фильме, я не знаю. Вот единственный скриншот с более или менее крупным планом одного из терминалов. Если среди читателей вдруг есть кто-то, способный по нему определить ОС (или у кого-то завалялась Full-HD версия того же кадра) — прошу поделиться с нами в комментариях.
Зачем же я вообще упоминаю здесь System/360 и IBM System/370? А вот зачем. Дело в том, что именно под эти системы была в 1968-ом году разработана программа File Retrieval and Editing System, которая официально считается первой в мире программой с поддержкой функции Undo. Вот как об этой функции в данной программе рассказывает её автор Andries van Dam:
The most popular feature, however, was undo. I will claim that, to the best of my knowledge, FRESS was the first system to have an undo. We saved every edit in a shadow version of the data structure, and that allowed us to do both an autosave and an undo. I think the most important feature in any system built today has to be indefinite undo and redo. One level is better than zero, but not enough, and wholly inadequate for serious work. It doesn't matter how it's done, whether it's journaling, transcripting done with inverses, whatever, but you've got to have it.
Т.е. мы уже дошли до понимания того, что на показанном в фильме мейнфрейме ЕС 1045 (разработан в 1979-ом) вполне могла работать операционная система IBM System/370 и использоваться текстовый редактор File Retrieval and Editing System (разработан в 1968-ом) с функцией Undo. Т.е. сама концепция операции отмены и даже её реализация в конкретном текстовом редакторе по обстоятельствам фильма вполне могли быть известны главным героям.
Теперь давайте поговорим именно о вызове действия Undo комбинацией Ctrl+Z (или любой другой с буквой Z). Я перелопатил кучу информации, но так и не нашел описание того, как команда отмены запускалась в редакторе File Retrieval and Editing System (возможно, кто-то из читателей умеет гуглить лучше меня?). Но вот что известно абсолютно точно — так это то, что комбинация Ctrl+Z использовалась для отмены действий в текстовом редакторе Bravo, созданном в 1974-ом году программистами из Xerox PARC. Именно им все официальные источники (например, The New York Times) приписывают авторство идеи привязать комбинацию Ctrl+Z к функции Undo. Учитывая послужной список изобретений подразделения Xerox PARC в это вполне можно поверить.
Итак, теперь мы знаем, что на момент создания ЕС 1045 уже 11 лет как существовала реализация функции Undo (в совместимом с ЕС 1045 софте) и 5 лет как существовала комбинация клавиш Ctrl+Z, как горячая клавиша для вызова Undo. От создания ЕС 1045 до съёмок фильма прошло ещё 3 года, что также способствовало распространению софта и знаний о его функциях.
Отсюда мы можем сделать вывод, что герои фильма (как и его авторы) могли вполне осознанно и аргументированно упоминать функцию отмены и её связь с латинской буквой Z как отсылку к функции Undo и комбинации клавиш Ctrl+Z в ПО компьютеров тех лет.
Буду рад любым уточнениям (ну или даже опровержениям) написанного.
Автор: tangro