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