Safari або чим замінити Microsoft Explorer

У 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'e Річарда браузер з невідомою іконкою хвацько запустився, без проблем відкрив запитану веб-сторінку, потім іншу, успішно перейшов за посиланням на цій сторінці, повернувся назад - все працювало. Те, на що пішло шість тижнів, досягнуто за два дні?

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

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


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

У Konqueror'a, як і у Mozilla, не було версії для Mac OS X, але Річард не став з місця в кар'єр адаптувати хоч і менший за розміром, але все-таки величезний, вихідний код в Mac OS X. Замість цього він написав «перемичку» (shim) між Mac OS X і всією системою KDE. Це дуже непросто, але якщо не звертати увагу на неактуальні подробиці це зовсім не неможливо. Тобто, все-таки геній.

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

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

Фронт робіт і терміни

По-хорошому, робота над власним браузером тільки повинна була початися. А щоб вкластися в стислі терміни, код «основи» піддали уважному вивченню. Поруч з Мас'ами встановили кілька LInux-машин з встановленим на них Konqueror'ом, щоб мати можливість вивчати роботу вихідних механізмів в динаміці.


Вихідний код, порівняно з Mozilla, виглядав простим і компактним - у директорії верхнього рівня були тільки дві піддиректорії, KHTML і KJS. Всього триста з невеликим файлів.

Порахували кількість рядків у коді (при такому підрахунку ігноруються порожні рядки і рядки з коментарями), вийшло 120 тисяч рядків. У 2003 році Стів назвав інше число рядків - 140 тисяч, хто з них був більш правий я не знаю.

У будь-якому випадку це в десять з гаком разів менше ніж в Mozilla.

На підході були нові божевільні (які погодилися взятися за проект про суть якого вони нічого не знали, але на думку його керівників здатних принести йому користь), і перший етап (справжнє перенесення Konqueror'a в Mac OS X) було вирішено завершити за 4 місяці.

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

Продовження слід

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

COM_SPPAGEBUILDER_NO_ITEMS_FOUND