Читаем Хакеры. Как молодые гики провернули компьютерную революцию и изменили мир раз и навсегда полностью

Возникла определенная эстетика стиля программирования. Из-за ограниченного объема памяти TX-0 (недостаток, свойственный всем компьютерам той эпохи) хакеры высоко ценили инновационные приемы, позволявшие программам выполнять сложные задачи при помощи небольшого количества команд. Чем короче код, тем больше места остается для других программ и тем быстрее она выполняется. Если вы не сильно обращали внимание на скорость выполнения программы и ее размер, а также не гнались за красотой и искусством, то можно было бы хакнуть неудачную программу методом грубой силы. «Ну, мы можем сделать это, добавив двадцать команд, – сказал бы сам себе Самсон. – Ведь гораздо проще написать их, чем придумывать цикл в начале и конце кода, чтобы достичь того же результата с помощью семи или восьми команд». Но только второй вариант вызвал бы восторг друзей-хакеров. Некоторые программы Самсон так искусно втискивал всего лишь в несколько команд, что при взгляде на его код хакеры таяли от восхищения.

Иногда втискивание программ превращалось в некое соревнование, состязание мачо, призванное доказать, и прежде всего самому себе, что он виртуозно владеет системой и может элегантно удалить одну-две команды или, еще лучше, переработать весь алгоритм и создать новый, укороченный на целый блок команд. Алгоритм – специфическая процедура, применяемая для решения сложной компьютерной задачи, своего рода математическая отмычка. Для этого надо взглянуть на проблему с необычного ракурса, так, как никто до вас не смотрел на нее. Только тогда можно осознать общий смысл проблемы. Подобная гениальная марсианская техника позволяла пережить озарение, ощутить присутствие музы, позволявшую хакеру отбросить все ранее придуманное другими умами и создать совершенно новый алгоритм. Так произошло с программой вывода десятичных чисел. Она использовалась для интеграции во множество других программ и перевода двоичных чисел, которыми оперирует компьютер, в привычные десятичные числа. Сондерс назвал задачку «программированием с павлиньим хвостом»: если вы можете написать простенькую рабочую программу перевода в десятичные числа, значит, ваши знания о компьютере вполне достаточны, чтобы расправить хвост и называть себя программистом. А вот если вы можете написать отличный алгоритм перевода в десятичные числа, то у вас есть право именовать себя хакером. Решение задачи перешло из ранга простого соревнования в своеобразный поиск хакерами чаши Грааля.

Создание оптимального алгоритма перевода в десятичные числа заняло несколько месяцев. Непроходимые глупцы, полные идиоты, абсолютные лузеры писали программы с сотней команд для перевода компьютером двоичных чисел в десятичные. А вот хакер, достойный своего звания, мог написать программу с меньшим количеством команд. Следуя процедуре, взглянув на проблему под другим углом, попеременно убирая из алгоритма то одну, то другую команду, можно сократить его и до пятидесяти инструкций.

Это стало серьезным испытанием. Хакеры часами искали способы втиснуть код. И это было уже не просто соревнование – был брошен серьезный вызов их умам. Несмотря на все усилия, никто не мог преодолеть барьер в пятьдесят строк. Естественно, встал вопрос, возможно ли такое в принципе? Существует ли предел, за которым программа просто не сможет работать?

Среди многих, взявшихся за решение головоломки, был Дженсен, высокий молчаливый хакер из штата Мэн. Обычно он тихонечко сидел в комнате Клуджа и писал на распечатках с кодом с тем же упорством и невозмутимостью, с каким лесоруб валит лес. Дженсен всегда стремился найти способы втиснуть свои программы и увеличить скорость их работы. Его код представлял собой причудливый последовательный набор логических и арифметических функций, часто вызывая вычисления в разных частях одного и того же 18-битного слова. Удивительные вещи, настоящая магия.

До Дженсена считалось, что единственный логический алгоритм для процедуры вывода десятичных чисел – это последовательное вычитание с использованием таблицы степеней числа 10 так, чтобы результат попадал в соответствующие столбцы цифр. Каким-то образом Дженсен догадался, что таблица степеней числа 10 не нужна. Он придумал алгоритм, способный преобразовывать числа в обратном порядке, но благодаря хитрому приему выводить их в верной последовательности. Кроме того, Дженсен математически обосновал свое решение. Остальные хакеры смогли разобраться в его решении только после того, как Дженсен вывесил его на доску объявлений. Тогда они увидели, что ему удалось преодолеть существовавший ранее барьер по сокращению количества команд программы для вывода десятичных чисел. В его алгоритме осталось всего сорок шесть строк. Хакеры разинули рты, пораженные увиденным кодом. Мардж Сондерс вспоминает, что хакеры после случившегося несколько дней были тише воды.

«Мы поняли, что все кончилось, – позже сказал Боб Сондерс. – Мы достигли нирваны».

Компьютеры могут изменить вашу жизнь к лучшему.

Перейти на страницу:

Похожие книги

Все успешные CEO делают это. Как брать от жизни все и добиваться феноменальных результатов в карьере
Все успешные CEO делают это. Как брать от жизни все и добиваться феноменальных результатов в карьере

Руководители и предприниматели работают на грани своих возможностей. Корпоративный мир диктует свои условия: чтобы продвигаться по карьерной лестнице, нужно забыть о собственном благополучии и все усилия направлять на решение рабочих задач. В итоге компании теряют $500 млн ежегодно на больничных, отгулах, снижении производительности и текучке кадров.Меган Макнили, старший вице-президент из Merrill Lynch и коуч первых лиц компаний, делится своей методикой, которую разрабатывала 12 лет и испытала на себе. Она помогает поднять личный и деловой успех на новый уровень: увеличить пиковую производительность, максимизировать прибыль, улучшить навыки общения, обрести стратегическое мышление, улучшить сервис и многое другое.По мнению Уоррена Баффетта, есть только один тип инвестиций, который превосходит остальные, – инвестиции в себя!

Меган Макнили

Карьера, кадры / Зарубежная деловая литература / Финансы и бизнес
Съедобная экономика. Простое объяснение на примерах мировой кухни
Съедобная экономика. Простое объяснение на примерах мировой кухни

Всемирно известный экономист Ха-Джун Чанг приглашает читателей в увлекательное и неординарное кулинарное путешествие по экономической теории и практике. Используя знакомые продукты, от лапши и чеснока до кока-колы и кофе, он доступно объясняет самые сложные темы: свободную рыночную экономику, индустриализацию, глобальную конкуренцию, протекционизм, социальное неравенство, предпринимательство, корпоративный успех, роботизацию и будущее рынка труда. С каждым ингредиентом, приправой или напитком он создает яркое повествование, помогающее разобраться в запутанных вопросах глобальных рынков, систем поставок и многого другого.Книга рекомендуется всем, кто хочет понять, как устроена экономика и как она влияет на наше общество и жизнь каждого из нас.

Ха-Джун Чанг

Экономика / Зарубежная деловая литература / Финансы и бизнес