Так называемая пакетная обработка хорошо действовала в случае масштабных задач, например составления платежной ведомости крупной корпорации. Но она так утомила программистов, что они развернули партизанское движение за большую интерактивность. В 1957 году мечтатель Джон Маккарти продемонстрировал прототип радикально нового программного обеспечения: «систему разделения времени», которая «позволяет каждому пользователю действовать, словно он один работает с машиной». Вместо того чтобы ждать, пока будет обработана пачка перфокарт, пользователь общается с компьютером с помощью клавиатуры терминала. Можно «говорить» с компьютером, получать быстрый ответ, затем вносить коррективы. Программирование становилось больше похожим на беседу.
Разделение времени сделало вычислительные машины доступнее, распределив стоимость на сотни пользователей. Десятки людей могли одновременно обращаться к компьютеру, при этом центральный процессор переключался от работы одного пользователя к следующему в долю секунды. Новый «поочередный» режим оказался не просто более эффективным. Это был скачок, позволивший отказаться от колод перфокарт и намного повысить производительность работы пользователей. В 1965 году General Electric объединила улучшенную версию системы Маккарти с оригинальным Дартмутским Бейсиком и организовала коммерческое обслуживание. Три года спустя Билл Дугалл и «Клуб матерей» заказали ее для Лейксайда.
Мне повезло: я достиг совершеннолетия во время фундаментальных подвижек в компьютерной промышленности. Вычислительные мощности, прежде доступные только правительственным органам, крупным корпорациям и университетам, теперь предоставлялись по часам. Новые технологии доставили эти мощности в отдельные офисы и школы. Как всегда, время сыграло решающую роль. Родись я на пять лет раньше, мне, подростку, не хватило бы терпения мучиться с «пакетной обработкой». Появись я на пять лет позже, когда распределение времени вошло в обиход, у меня не появилась бы возможность пробовать что-то новое.
В Лейксайде программирование не было включено в курс математики, а преподавалось отдельно. За нами приглядывал Фред Райт, молодой учитель математики, который летом прошел курсы программирования на перфокартах в Стэнфорде. Мистер Райт выдал нам учебник по Бейсику и несколько элементарных задачек, чтобы «раздразнить аппетит», а потом оставил нас в покое. И мы, не зная, как правильно, изобретали собственные методы. Мы стали мудрыми по необходимости.
Нам в помощь была предоставлена лишь скудная и поверхностная документация. В учебнике по Бейсику было пятьдесят с чем-то страниц, и я расправился с ним за день или два. Я выучил примерно двадцать главных ключевых слов и то, как работают определенные клавиши на телетайпе. Язык казался иностранным первые два часа, потом наступила ясность. Бейсик был гораздо легче французского: четкая логика, никаких неправильных глаголов, компактный словарь. Если я застревал, то обращался к старшим: а как сделать это? как распечатать то? Они обогнали меня примерно на месяц и с удовольствием демонстрировали свои познания.
В одной из первых программ, позаимствованных из учебника, я нарисовал синусоиду. Каретка телепринтера моталась туда-сюда, выдавая безупречный узор звездочек, словно движимая невидимой рукой. Прошло несколько дней – и Фреду Райту уже нечему было нас учить. Он лишь иногда заглядывал к нам, улыбался и спрашивал:
– Как дела, ребятки?
Некоторые строгие учителя ворчали, что нам предоставили слишком много свободы, но мистер Райт любил балансировать на грани между контролем и хаосом, дразня наш энтузиазм.
Невозможно описать, с каким волнением я садился к телетайпу. Свою программу, написанную на тетрадном листе, я набивал на клавиатуре, включив перфоратор. Потом я набирал номер, соединяясь с компьютером, ждал гудка, подключался с помощью школьного пароля и нажимал кнопку «СТАРТ», чтобы читающее устройство считало перфоленту – на это уходило несколько минут.
И вот наступал торжественный момент. Я набирал слово «RUN», и результаты распечатывались со скоростью десять знаков в минуту – допотопная скорость по сравнению с сегодняшними лазерными принтерами, но впечатляющая в те времена. Вскоре становилось ясно, работает ли программа; в противном случае появлялось сообщение об ошибке. В любом случае я разрывал связь, чтобы сэкономить деньги. Затем исправлял программу: доходил на перфоленте до ошибки и набирал правильные команды на клавиатуре, одновременно набивая новую перфоленту – тонкая работа, которая в наши дни делается одним кликом мышки и нажатием клавиши. Добившись, чтобы программа работала, я скреплял рулон перфоленты резинкой и клал на полку до следующего сеанса.