Safari или чем заменить Microsoft Explorer

4

В 2001 году для подавляющего большинства обитателей планеты Земля Internet и Internet Explorer были чуть ли не одним и тем же. Попытки противопоставить этой монополии что-то своё предсказуемо заканчивались ничем. Бессмысленно даже пытаться.

В июне 2001 года, в обстановке абсолютной секретности, в Apple приступили к разработке собственного веб-браузера. Организовать и осуществить эту авантюру (узнай журналисты об этом проекте, “авантюра” была бы самым мягким определением задуманного) поручили Скотту Форстоллу.

Команда проекта, бросающая вызов огромному монополисту, состояла из двух человек. В апреле компания Eazel закончила разработку Nautilus 1.0, оболочки превращавшей Linux в операционную для обычных пользователей, конкурента для Windows и Mac OS X, к тому же бесплатного – и в тот же самый день сократила две трети своего штата. Apple приняла на работу лучших из попавших под это сокращение.

Дон Мелтон, ставший техническим менеджером авантюрного проекта, в Eazel возглавлял разработку проекта Nautilus, Кен Коценда – пока еще единственный инженер в команде – был одним из программистов в этом проекте. Из них только Дон Мелтон имел некоторый опыт разработки браузеров (превращение Netscape в проект с открытым исходным кодом Mozilla – он вычищал код от нецензурных комментариев).

Здравый смысл подсказывает: ничего хорошего у них получиться не могло…

Это продолжение серии про Safari, предыдущие части:
Первая часть: Safari 7 и Скотт Форстолл.

Ничего хорошего не получается!

О том, что им предстоит работать вместе, и их первым заданием в Apple станет написание браузера, лучшего чем Microsoft Internet Explorer, Дон и Кен узнали подписав соглашения о неразглашении и ознакомившись с правилами внутреннего распорядка (никому ни о чем не рассказывать, кодовое наименование проекта за пределами рабочей комнаты и офиса их руководителя не произносить и тому подобными ущемлениями свобод).

Неведомое, конечно же, интригует и возбуждает любопытство, но вот вы бы подписались на выполнение явно чего-то очень нетривиального и страшно секретного, не имея никакого представления о том чем вам придется заниматься?

Во времена Стива Джобса это было обычной практикой в Apple. Почти все кто создавал в этой компании настоящие чудеса, прошел через это. Сумасшедшие. Нормальные на таких условиях работать не соглашались.

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

Кен никогда не участвовал в разработке браузеров, поэтому Дону пришлось потратить два дня на ликбез. Объяснить что такое HTML, CSS, JavaScript и прочий алфавитный суп.

Поскольку написать полноценный (а от них требовался не просто полноценный, но лучший в мире) браузер с нуля за год или два абсолютно невозможно, Дон и Кен занялись поиском подходящего браузера с открытым исходным кодом и щадящей лицензией, который стал бы основой для их разработки.

И, что было естественно, первым кандидатом на такую основу стал Mozilla. Вообще-то они составили список потенциальных “доноров”, на шестой позиции которого был мало кому известный Konqueror. Но начали с первой позиции.

Исходный код Mozilla был огромен: почти полтора миллиона строк. Версии для Mac OS X в дистрибутиве Mozilla не было, только для Linux – самой Mac OS X было всего три месяца, а между Darwin (система без графического интерфейса внутри Mac OS X, клон BSD) и Linux было много общего, но и различий было очень много.

На то чтобы просто построить Mozilla в Mac OS X ушла неделя. Иконка браузера появилась в доке – и тут же исчезла. Еще через неделю впервые удалось дойти до открытия пустого окна. Но открыть веб-страницу не удавалось.

Недели напряженной работы (без выходных, с раннего утра до поздней ночи) не привели ни к каким обнадеживающим результатам. Руководство (Скотт Форстолл) уже проявляло нетерпение, и сомнения в их способности сделать что-то полезное.

За шесть недель с начала разработки так и не удалось открыть даже самую простенькую веб-страницу, это был провал.

Тем временем, нашелся подходящий сумасшедший.

Ричард Вильямсон

Вскоре Дон Мелтон интервьюировал нового кандидата (предыдущие были отклонены или отказались сами), говорившего с британским акцентом, и был настолько самоуверен, что у Дона возникли сомнения. Хотя на все технические вопросы кандидат отвечал грамотно и, судя по всему, требуемой квалификацией обладал.

Тем не менее, Дон Мелтон был готов отказать кандидату, но тут в дело вмешался Бертран Серле, старший вице-президент компании по программному обеспечению, поддержавший кандидата. В начале 90-х Ричард работал под его руководством в NeXT, и проявил себя хорошо. Его приняли.

Ричард начал свой первый день с вопросов о том, что и как было сделано до него, и в чем собственно есть проблемы. Его самоуверенность раздражала, но вопросы были уместны.

Никак не комментируя ответы коллег, Ричард продолжал задавать вопросы, а потом взял таймаут на “подумать”. Через два дня он пригласил Дона и Кена, пообещав им показать что-то интересное. Заинтриговал.

На Mac’е Ричарда браузер с неизвестной иконкой лихо запустился, без проблем открыл запрошенную веб-страницу, затем другую, успешно перешел по ссылке на этой странице, вернулся назад – все работало. То, на что ушло шесть недель, достигнуто за два дня?

Правда, текст в браузере отображался кривовато, шрифты были ужасными, поддержка стилей и размеров шрифтов отсутствовала в принципе – но это было неважно. Гений?

Ричард не просто так задавал вопросы. Он взглянул на происходящее свежим взглядом, и пришел к неожиданным выводам, которые не стал сообщать, решив сначала попробовать, и за двое суток реализовал свои идеи.

Вместо Mozilla он выбрал Konqueror. По набору функций этот браузер ни в чем не уступал Mozilla, но по размеру исходного кода был намного меньше.

У Konqueror’а, как и у Mozilla, не было версии для Mac OS X, но Ричард не стал с места в карьер адаптировать хоть и меньший по размеру, но все-таки огромный, исходный код в Mac OS X. Вместо этого он написал “перемычку” (shim) между Mac OS X и всей системой KDE. Это очень непросто, но если не обращать внимание на неактуальные подробности это вовсе не невозможно. То есть, все-таки гений.

Кроме того, вместо Core Graphics (графических библиотек Mac OS X) он использовал X Windows, Unix’овый графический пакет входивший в состав Mac OS X, и более или менее совместимый с KDE (на графические неточности и некрасивости Ричард решил внимание не обращать).

Теперь было что ответить Скотту на его ежедневный и все более ехидный вопрос. Новость дошла до самого Стива Джобса.

Фронт работ и сроки

По-хорошему, работа над собственным браузером только должна была начаться. А чтобы уложиться в сжатые сроки, код “основы” подвергли внимательному изучению. Рядом с Mac’ами установили несколько LInux-машин с установленным на них Konqueror’ом, чтобы иметь возможность изучать работу исходных механизмов в динамике.

Исходный код, по сравнению с Mozilla, выглядел простым и компактным – в директории верхнего уровня были только две поддиректории, KHTML и KJS. Всего триста с небольшим файлов.

Посчитали число строк в коде (при таком подсчете игнорируются пустые строки и строки с комментариями), получилось 120 тысяч строк. В 2003 году Стив назвал другое число строк – 140 тысяч, кто из них был более прав я не знаю.

В любом случае это в десять с лишним раз меньше чем в Mozilla.

На подходе были новые сумасшедшие (согласившиеся взяться за проект о сути которого они ничего не знали, но по мнению его руководителей способных принести ему пользу), и первый этап (настоящий перенос Konqueror’а в Mac OS X) было решено завершить за 4 месяца.

А весь проект должен был занять 18 месяцев, включая уже потраченные два.

Продолжение следует

Обсудить историю Apple вы можете в нашем Telegram-чате.

 
Авторизуйтесь Чтобы оставить комментарий