Ознакомительная версия. Доступно 12 страниц из 57
В 1970-х гг., когда Джой постигал азы программирования, компьютеры занимали по целой комнате. Одна вычислительная машина — с меньшей мощностью и памятью, чем у вашей микроволновки, — стоила примерно миллион долларов. И это в долларах 1970-х гг. Компьютеров было мало. Если вам удавалось отыскать хотя бы один, пробиться к нему было трудно; если вам удавалось занять за ним место, его использование обходилось в целое состояние.
Более того, программирование в то время являло собой крайне утомительное занятие. Это была эпоха программ, создаваемых с помощью картонных перфокарт. Клавишный перфоратор набивал на карточке строчки кодов. Сложная программа состояла из сотен — если не тысяч — таких карточек, хранившихся в огромных стопках. Когда программа была готова, вы искали доступ к вычислительной машине и отдавали кипы карточек оператору. Поскольку компьютеры могли выполнять лишь по одной команде за раз, оператор записывал вас в очередь, поэтому получить карточки обратно можно было лишь через несколько часов или через день в зависимости от того, сколько человек было перед вами. А если в программе обнаруживалась хоть малейшая ошибка, пусть даже опечатка, вы забирали карточки, выискивали ее и начинали все с начала.
В таких условиях стать программистом-экспертом было чрезвычайно трудно. И разумеется, не могло идти речи о том, чтобы стать настоящим специалистом в двадцать с небольшим. Если из каждого часа, проведенного в компьютерном центре, вы «программировали» лишь несколько минут, каким образом можно было набрать 10 000 часов практики? «Программируя с помощью карточек, — вспоминает компьютерный специалист той эпохи, — ты учился не программированию, а терпению и внимательности».
И здесь в игру вступает Мичиганский университет. В середине 1960-х гг. он представлял собой нетипичное учебное заведение. У него была давняя компьютерная история и были деньги. «Помню, как мы купили полупроводниковое запоминающее устройство. Это было в шестьдесят девятом. Полмегабайта памяти», — вспоминает Майк Александр, один из тех, кто создавал университетскую компьютерную систему. Сегодня полмегабайта памяти стоит четыре цента и умещается на кончике пальца. «Думаю, тогда это устройство стоило несколько сотен тысяч долларов, — продолжает Александр, — и было размером с два холодильника».
Бо́льшая часть учебных заведений не могла себе такого позволить. А Мичиганский университет мог. Но что еще важнее, он был одним из первых университетов, заменивших картонные карточки современной системой разделения времени. Эта система появилась благодаря тому, что к середине 1960-х гг. компьютеры стали гораздо мощнее и могли одновременно обрабатывать несколько задач. Компьютерщики обнаружили, что можно обучить машину обрабатывать сотни заданий одновременно, а это означало, что программистам больше не нужно было таскать операторам стопки карточек. Достаточно было организовать несколько терминалов, посредством телефонной линии подсоединить их к ЭВМ, и все программисты могли одновременно работать онлайн.
Вот как описывает появление разделения времени свидетель тех событий:
«Это была не просто революция, а настоящее откровение. Забудьте об операторах, грудах карточек, очередях. Благодаря разделению времени ты мог сидеть за телетайпом, набивать команды и моментально получать ответ. Разделение времени — система интерактивная: программа запрашивала ответ, ждала, пока ты его напечатаешь, обрабатывала его и выдавала результаты. И все в режиме реального времени».
Мичиганский университет одним из первых в стране ввел систему разделения времени, получившую название MTS (Мичиганская терминальная система). К 1967 г. был запущен в действие прототип системы. В начале 1970-х гг. компьютерные мощности университета позволяли сотне программистов работать одновременно. «В конце шестидесятых, начале семидесятых ни один университет не мог сравниться с Мичиганским, — говорит Александр. — Разве что Массачусетский технологический. Может, еще университет Карнеги-Меллона и Дартмутский колледж. Больше, пожалуй, никто».
Вот какие возможности открылись перед Биллом Джоем осенью 1971 г., когда он прибыл в кампус Энн-Арбора. Он выбрал Мичиганский университет вовсе не из-за компьютеров. В средней школе он не имел с ними дела. Его интересовали математика и инженерия. Но когда на первом курсе он серьезно «заболел» компьютерами, оказалось, что по счастливой случайности он учится в одном из немногих университетов в мире, где 17-летний студент может программировать в полное свое удовольствие.
«Знаете, чем отличается программирование с помощью перфокарт и разделение времени? — спрашивает Джой. — Тем же, чем игра в шахматы по почте отличается от очной игры на скорость». Программирование перестало приносить разочарования и превратилось в развлечение.
«Я жил в северном кампусе, и там же располагался компьютерный центр, — продолжает рассказывать наш герой. — Сколько времени я там проводил? Феноменально много. Центр работал 24 часа в сутки, и я просиживал там всю ночь, а утром возвращался домой. В те годы я проводил в центре больше времени, чем на занятиях. Все мы, помешанные на компьютерах, жутко боялись забыть о лекциях и вообще о том, что мы учимся в университете.
Была одна проблема: всем студентам разрешалось работать за компьютером строго определенное время. Когда ты записывался, то должен был указать, как долго собираешься сидеть. Давали примерно один час. На большее нечего было рассчитывать, — эти воспоминания развеселили Джоя. — Но кто-то вычислил, что если поставить время, потом знак „равно“ и букву, t = к, то отсчет времени не начнется. Такая вот ошибка в программном обеспечении. Ставишь t = к — и можешь сидеть там до бесконечности».
Обратите внимание, сколько благоприятных возможностей выпало на долю Билла Джоя. Поскольку ему посчастливилось попасть в университет с дальновидным руководством, он получил шанс осваивать программирование с помощью системы с разделением времени, без перфокарт; поскольку в MTS закралась ошибка, он мог программировать сколько душе угодно; поскольку университет был готов тратить деньги на то, чтобы держать компьютерный центр открытым 24 часа в сутки, он мог проводить там ночи напролет; и поскольку ему удалось потратить на свое образование так много часов, он был во всеоружии, когда представилась возможность переписать UNIX. Билл Джой был исключительно талантлив. Он хотел учиться. И этого у него не отнять. Но прежде, чем он стал специалистом, ему должна была представиться возможность научиться всему тому, чему он научился.
«В Мичигане я программировал по восемь-десять часов в день, — признается Билл. — Когда поступил в Беркли, то посвящал этому дни и ночи. Дома у меня стоял терминал, и я не ложился до двух-трех часов ночи, смотрел старые фильмы и программировал. Иногда так и засыпал за клавиатурой, — он продемонстрировал, как его голова падала на клавиатуру. — Когда курсор доходит до конца строки, клавиатура издает такой характерный звук: бип-бип-бип. После того как это повторяется три раза, нужно идти спать. Даже поступив в Беркли, я оставался зеленым новичком. Ко второму курсу я поднялся выше среднего уровня. Именно тогда я стал писать программы, которыми пользуются до сих пор, тридцать лет спустя, — он на секунду задумывается, мысленно производя подсчеты, что у такого человека, как Билл Джой, не отнимает много времени. Мичиганский университет в 1971 г. Активное программирование ко второму курсу. Прибавьте сюда летние месяцы и дни и ночи, уделяемые этому занятию в Беркли. — Пять лет, — подводит итог Джой. — И начал я только в Мичиганском университете. Так что, наверное… десять тысяч часов? Думаю, так и есть».
Ознакомительная версия. Доступно 12 страниц из 57