Шрифт:
Интервал:
Закладка:
Мы трое взяли себе за правило размещать на экранах окно сообщений FIXME рядом с окном браузера, и при попытках запустить программу мы внимательно просматривали отчеты. Организация рабочего процесса сложилась так: пытаюсь загрузить страницу, проверяю отчет, меняю исходный код так, чтобы исправить бросающуюся в глаза проблему, на которую указывает FIXME, затем пытаюсь снова.
В самом начале этого этапа вылавливания ошибок отчет содержал такие строки: «Отрисовка изображений не осуществляется… Ссылки на веб-страницы не работают… Выполнение JavaScript не осуществляется». Позднее, когда мы улучшили код, многие из этих «не осуществляется» превратились в «осуществляется частично». Когда мы понимали, что область с пометкой FIXME наконец доведена до ума, мы удаляли примечание совсем. Но, как бы то ни было, после того, как мы исправили массу таких проблем, окно нашего браузера по-прежнему не подавало никаких признаков жизни. Оно оставалось пустым пространством из белых пикселей, а многочисленные отчеты FIXME продолжали указывать, как много нам еще предстоит сделать.
Мы двигались вперед, и после нескольких недель монотонного труда Ричард взял пару выходных. Он занимался обработкой графических данных для отображения элементов на экране и считал, что близок к тому, чтобы избавиться от нескольких наиболее важных FIXME. Он передал работу мне, и я начал с того места, где он остановился. После нескольких часов анализа я нашел место, где, как мне казалось, программа, грубо говоря, пытается нарисовать что-то на странице, на самом деле не касаясь ручкой бумаги. Будто браузер играет на воображаемой гитаре. Я написал код, чтобы исправить это, затем скомпилировал приложение и запустил его.
Я набрал URL-адрес: http://www.yahoo.com. Как обычно, отчет FIXME заполнялся строка за строкой, но браузер не падал. Прошло несколько секунд, а потом браузер кое-что сделал. Он показал мне картинку.
Я закрыл приложение и попробовал снова. Я опять загрузил домашнюю страницу Yahoo. Отчет FIXME заполнился, браузер не упал, снова та же короткая пауза… и тот же черный прямоугольник!
Черный прямоугольник. Первая настоящая «веб-страница», которую наш браузер Apple загрузил из интернета
Я выбежал в коридор, чтобы позвать Дона. Когда мы вернулись, я закрыл приложение, снова открыл и загрузил главную страницу Yahoo. Во время паузы мы затаили дыхание… и опять увидели все тот же черный прямоугольник! Браузер наконец что-то сделал!
Мы начали кричать, улюлюкать и хлопать друг друга по спине. Мы вели себя как персонажи из фильма «2001 год: Космическая одиссея», когда наши отдаленные предки австралопитеки вошли в контакт с инопланетным Черным монолитом, чему посвящены первые десять минут фильма. Мы даже превзошли их.
Мы тыкали пальцами в экран и вопили. Я попытался снова загрузить страницу. Браузер опять сработал… еще один черный прямоугольник! Это действительно случилось!
Хотя наше достижение и может показаться ничем не примечательным, мы были в восторге. Все три месяца после того, как Ричард показал свою демоверсию, мы делали ставку на нашу стратегию портирования. Но ее результаты мы могли отследить только опосредованно, по цифрам: столько-то файлов исходного кода скомпилировано, столько-то перекрестных ссылок исправлено, столько-то FIXME убрано. Теперь мы могли видеть веб-страницы в окне браузера.
У нас с Доном состоялась собственная встреча с Черным монолитом. Мы прошли через долгий период блужданий во тьме и сомнений по поводу этого проекта, и теперь наступал рассвет.
Во всей моей карьере в Apple было всего два момента, когда я был готов кричать «Эврика!», и это был один из них. Я жалел, что с нами нет Ричарда, чтобы разделить радость этого мгновения. Его демоверсия показала потенциал Konqueror, а встреча с черным прямоугольником была следующим большим шагом. Она показывала, что стратегия портирования действительно работает, и стала на пути превращения демоверсии в продукт.
Больше таких периодов, когда недели проходят без каких-то видимых успехов, у нас не было. После того как мы увидели, что страницы загружаются, мы с каждым днем наблюдали, как браузер становится все лучше и лучше. Еще до конца недели мы превратили черный прямоугольник в страницу, где отображался весь текст с домашней страницы Yahoo. Еще пару дней спустя ссылки на другие страницы приобрели голубой цвет и подчеркивания, как было тогда принято. На следующей неделе появились первые картинки. Когда я загрузил первую веб-страницу, это было похоже на щелчок выключателя, после которого комнату заливает свет.
В наши дни большинство людей воспринимают браузеры как что-то само собой разумеющееся, поэтому аналогия со светом вполне уместна. Мы ныряем в интернет, не задумываясь о том, что браузер — это технология, которая когда-то и кем-то создана. То же самое было и с электричеством, и я думаю, что, пытаясь в XXI веке создать браузер, мы могли бы кое-чему поучиться у Эдисона, который в XIX веке создавал свою лампу накаливания.
Эдисону тоже приходилось сражаться с техникой, например, искать материал для нити накаливания, который мог бы гореть ярко и долго. Мне очень нравится, как причудливо описываются эти поиски в книге 1910 года под названием «История великих открытий».
Однажды вечером [Эдисон] размышлял над проблемой и, сам того не осознавая, крутил в руках кусочек ламповой сажи [красителя, изготавливающегося из копоти], смешанной со смолой, которую он использовал при создании телефона. Не думая о том, что он делает, Эдисон скатал эту смесь сажи и смолы в нить. Тут он посмотрел на то, что у него получилось, и в голову ученому пришла мысль: «А почему бы не пропустить электрический ток через этот углеродный материал?» Он попробовал, и в результате получилась яркая вспышка…
Затем Эдисон решил найти лучший вариант углеродного материала для своих целей. Он покрывал углем бумагу и различные породы дерева — да и любые материалы, все, из чего можно было сделать углеродную нить. Он пробовал даже использовать японский веер из бамбука, и обнаружил, что это волокно светится лучше, чем что-либо еще. Потом он начал искать лучший вид бамбука. Ученый узнал, что существует 2000 разновидностей этого растения. Он должен был заполучить все образцы. Эдисон отправлял людей по всему миру в разные места, где рос бамбук. Одному из них пришлось преодолеть 48 тысяч миль и повстречаться по дороге с дикими животными. Наконец,
- Журнал PC Magazine/RE №02/2010 - PC Magazine/RE - Прочая околокомпьтерная литература
- Цифровой журнал «Компьютерра» № 159 (full) - Коллектив Авторов - Прочая околокомпьтерная литература
- Журнал PC Magazine/RE №11/2008 - PC Magazine/RE - Прочая околокомпьтерная литература
- Wiki-правительство: Как технологии могут сделать власть лучше, демократию – сильнее, а граждан – влиятельнее - Бет Новек - Интернет
- Цифровой журнал «Компьютерра» № 185 - Коллектив Авторов - Прочая околокомпьтерная литература
- Каждому проекту своя методология - Алистэр Коуберн - Программирование
- Информационные технологии: история и современность - Горунович Михаил Владимирович - Прочая околокомпьтерная литература
- Журнал PC Magazine/RE №10/2009 - PC Magazine/RE - Прочая околокомпьтерная литература
- Цифровой журнал «Компьютерра» № 178 - Коллектив Авторов - Прочая околокомпьтерная литература
- Шифровальщики. Как реагировать на атаки с использованием программ-вымогателей - Олег Скулкин - Прочая околокомпьтерная литература