Шрифт:
Интервал:
Закладка:
«Об этом просто никто не думал, — говорила Грейс. — И таких лентяев, как я, тоже еще не было. Программистам по большей части нравилось баловаться с двоичным кодом. А мне хотелось сделать дело. Компьютер ведь для этого и предназначался».
В самом начале, когда компьютеры еще только появились, Грейс и другие математики писали программы цифровым кодом — обозначали команды цифрами. Каждое сочетание нулей и единиц имело собственное значение. Так, например, если Грейс нужно было остановить компьютер, она набирала комбинацию «1 001 100». Каждую программу приходилось вводить отдельно, даже когда во многих программах встречались одинаковые фрагменты. Этот подход не только отнимал кучу времени, но и, как замечала Грейс, позволял наделать массу ошибок. Всего одна неправильная цифра — и программа не срабатывала.
У себя в кабинете Грейс повесила часы, которые шли против часовой стрелки, то есть задом наперед. Так она каждый день напоминала себе и своим коллегам, что все на свете можно сделать нестандартным способом. Самым вредным в любом споре Грейс считала возражение: «Но мы же всегда так делали».
«Все было очевидно, — говорила Грейс. — Зачем писать каждую программу с нуля? Лучше разработать такую программу, которая сама будет проделывать множество простейших операций столько раз, сколько потребуется. Создание компилятора было совершенно логичным шагом».
Логичным, но только для Грейс. Ее коллеги и руководство компании «Ремингтон Ренд» полагали, что создание компилятора относится к области невозможного.
Грейс доказала, что они ошибались. В 1952 году она создала «Систему А-0» — программу, или набор инструкций, превращавший математический код в машинный язык. Чтобы этого добиться, она взяла фрагменты кодов из нескольких программ и присвоила каждому из них собственный номер. С помощью этого номера компьютер находил нужные фрагменты и выстраивал их в требуемом порядке. Потом Грейс записала отдельные фрагменты кодов на магнитную ленту.
Летом 1945 года Грейс с коллегами работала на огромном компьютере марки IBM. Внезапно компьютер отключился. Покопавшись в нем, ученые обнаружили мотылька — тот залез внутрь и блокировал работу реле. Мотылька аккуратно извлекли и приклеили в журнал с надписью: «Первый случай обнаружения насекомого в механизме». Насекомых по-английски называют «багами» — козявками. С тех пор, если начальство спрашивало, почему расчеты идут так медленно, сотрудники отвечали, что занимались «дебаггингом», или «ловлей козявок», то есть обнаруживали и исправляли «баги» (ошибки) в программе. Слово это прочно вошло в компьютерную терминологию и используется по сей день наряду с русским термином «отладка».
«Теперь мне нужно было лишь написать цепочку номеров, дождаться, пока компьютер найдет их на ленте, извлечет их, и добавить все остальное, — объясняла Грейс. — Так появился первый компилятор. Можно было написать уравнения, а работать с ними поручить компьютеру».
Убедившись, что компилятор А-0 работает, Грейс не остановилась и разработала «Систему В-0» — компилятор, который понимал инструкции на английском языке (позже этот компилятор получил название FLOWMATIC). Новый компилятор, объясняла Грейс, работал как переводчик — преобразовывал буквы в узнаваемый язык машинного кода. Зачем? Чтобы нам было удобно работать на компьютере. Вокруг опять говорили: «Это невозможно». Но Грейс снова добилась своего.
«Если у вас есть хорошая идея, вы ее опробовали и убедились, что она работает, — действуйте, — говорила она. — Гораздо проще извиниться за самоволие, когда все уже сделано и успех достигнут, чем долго добиваться разрешения приступить к делу».
К 1957 году разработанный Грейс FLOWMATIC был одним из трех языков программирования, которыми пользовались на американских компьютерах, и единственным, позволявшим вводить команды на английском языке. Впрочем, вскоре стало очевидно, что программистам требуется универсальный компьютерный язык — такой, который будут понимать все компьютеры. Что думала по этому поводу Грейс? Она возглавила движение за стандартизацию. Она говорила, что без единого языка компьютерная индустрия «утонет и не выплывет».
По образу инновационных компиляторов, созданных Грейс Хоппер, был разработан Кобол (COBOL) («универсальный язык для выполнения бизнес-задач») — первый универсальный язык программирования, который стали использовать в государственных учреждениях и коммерческих организациях. А идеи удобных для пользователя программ, которые тоже разработала Грейс, легли в основу современных высокоуровневых языков программирования. Например, тех, на которых написаны компьютерные игры. И тебе лишь остается научиться в эти игры играть и выигрывать.
Каждый день, каждый час, каждую минуту миллионы покупателей по всему миру используют бумажные пакеты. Создательницу машины для изготовления пакетов с плоским дном звали Маргарет Найт. Эта женщина не только совершила революцию среди производителей бумажных пакетов, но и заставила людей по-новому делать покупки. Больше не нужно было паковать молоко, мясо и сыр в тяжелые деревянные ящики. И продавцы больше не мучались, пытаясь запихнуть банки с вареньем и круглые булки в плоский пакетик, который норовит сложиться, словно конверт. С появлением бумажного пакета с плоским дном жить вдруг стало значительно проще.
Маргарет работала в компании «Коламбиа Пейпер Бэг». Работа у нее была несложная: Маргарет складывала готовые пакеты в аккуратные стопки и перевязывала шпагатом. Для изготовления обычных пакетов служили машины, а пакеты с плоским дном клеили вручную. Маргарет не проработала и недели, как в голову ей пришла гениальная мысль.
«У меня была масса свободного времени, чтобы наблюдать за тем, что происходит вокруг, — говорила Маргарет. — В перерывах я смотрела, как работают машины, разглядывала работников, которые клеили пакеты с широким дном вручную».
Но почему нельзя изготавливать пакеты с широким дном машинным способом? Ручная работа — это и долго, и очень дорого. Мало кто мог позволить себе такой пакет. Маргарет объяснили, что машин, которые могли бы сложить и склеить широкое дно, не существует. И ей показалось очень странным, что никто до сих пор не придумал такую машину, ведь пакет с плоским дном гораздо удобнее обычного.