WebPositive, самый позитивный веб-браузер в мире
Путь к фирменному браузеру операционной системы Haiku был очень непростым. С 2001 по 2009, было предпринято несколько попыток заменить быстро устаревающий Net+ чем-то более современным. Только последняя из них была успешной.
NetPositive (Net+), штатный браузер BeOS, его разработчики считали временным решением, он не поддерживал ни Java, ни JavaScript, ни CSS. Системе срочно требовался браузер, с ресурсами было не слишком хорошо. Несмотря на его простоту, а может быть именно из-за нее, браузер получился неплохой. Надежный и неприхотливый.
Когда Microsoft, с пафосом и с ревом фанфар анонсировала ActiveDesktop ("живые" обои для своих операционных систем, на основе HTML), Be, Inc., немедленно добавила похожую функцию в свою операционную систему. Сообщив, что для ее реализации потребовалось всего 9 строк кода, и 15 минут работы программиста. И небольшой фрагмент из Net+, о чем Жан-Луи мудро промолчал.
Microsoft, обратившаяся было в суд по поводу сворованного у нее функционала, предпочла отозвать иск.
История Net+ прервалась на официальной версии 2.2.2 (если верить википедии), или, если верить периодическим изданиям Be, на версии 2.2. Достоверно известно о версии Net+ для разработчиков с номером 3.0d.3, с несчетными исправлениями багов, выявленных в 2. х, с не менее несчетными собственными багами и поддержкой JavaScript - но у третьей версии судьба не сложилась.
В 2007 году авантюристы из Haiku, Inc. решили не включать Net+ в первую альфа версию, поскольку его недостатки, более или менее приемлемые в начале десятилетия, в конце нулевых делали древний браузер бесполезным. Вместо модернизации Net+, выбрали куда более непростой путь: было решено писать новый браузер, с нуля, на движке WebKit.
Мнения разделились, но победил именно этот вариант.
Это шестая часть серии про Haiku. Предыдущие части:
- Первая: Haiku (OpenBeOS);
- Вторая: Кому нужна эта... Haiku?;
- Третья: Haiku R1/Alpha1.
- Четвертая: Haiku: Возвращение BeOS.
- Пятая: Web+, WebKit и Qt4.
Битвы за браузер, проигранные
Скорее всего, самой первой попыткой создания нового браузера для BeOS, был проект NetOptimist, или, в лаконичном Be-стиле, NetO. У разработчиков был доступ к исходному коду Net+ 2.2, и оптимист был бы клоном этого браузера.
Если бы у его создателей не иссяк оптимизм, простите за каламбур. С добровольческими проектами такое случается очень часто. Творческий кризис, нехватка времени, что угодно. С 2002 года NetOptimist не подавал признаков жизни, скорее всего проект был прекращен. Хотя не факт. BlueEyedOS, клон BeOS и конкурент Haiku, практически не обнаруживая себя в публичном пространстве, успешно развивался до конца 2014 года. Об этом я узнал от Гийома Мэйара, возглавлявшего этот проект.
Второй попыткой стал проект Net++. А может быть, первым был именно Net++, но так как делить этим проектам нечего, разницы нет никакой.
Net++ разрабатывался для BeOS и ее клонов. BlueEyedOS, Zeta, Haiku. Проект возглавлял Гийом Мэйар, он же разработал пользовательский интерфейс нового браузера, и написал почти половину его кода. Известен еще один участник проекта, Рожер-Андре Лассен.
Написать собственный веб-движок было нереально, времена самодеятельности в этой области уже прошли, а для переноса в клоны Be любого из существующих движков было нужно очень много времени и ресурсов.
Проект современного веб-браузера для BeOS, названного Themis, начавшийся при жизни BeOS, и продержался до января 2006. В Themis планировалась поддержка OpenSSL, CSS, JavaScript и Java, многопоточность и многое другое. Но в 2006 году проект остановился. В 2001 и 2002 в сообщениях о статусе проекта на SourceForge, чаще всего, сообщалось что проект еще жив.
В 2007 году, авантюристы из Haiku, Inc., обсудили и сформулировали проект браузера для Haiku, решив не бояться трудностей...
Битва за браузер, принесшая победу
Перенос WebKit в Be API был исключительно сложен. Во-первых, это массивный по объему и очень непростой исходный код. Во-вторых, внутреннему устройству Haiku отличается от других операционных систем. Наверное, больше ни в одной операционной системе в мире потоки не используются столь же творчески и повсюду.
А основа движка WebKit в этом вопросе очень консервативна. Потоки - опасная штука. Их применение, несмотря на сотни (а возможно, и тысячи) книг, написанных на эту тему, все еще очень опасный вид спорта. В некоторых из этих книг доказывается, убедительно и без вариантов, что потоки смертельно опасны, и их следует избегать.
Райан Ливенгуд и Максим Симон, стажер по программе GSoC-2009, справились с этой задачей. Кстати, Максим Симон получил стипендию, а его имя вписано в историю WebPositive.
Haiku, Inc можно было бы назвать кузницей кадров компьютерной индустрии, в 2009 году в проекте участвовало шесть стажеров GSoC-2009, пять из которых получили стипендию. В среднем, стипендию в том году получал один стажер из десяти.
Об одном из стажеров GSoC-2009 мы еще поговорим, с 2013 года он возглавляет проекты Web+ и HaikuWebKit.
HaikuWebKit был веткой проекта WebKit, но он настолько отличался от оригинала, что одно из преимуществ от применения быстро развивающегося движка с открытым исходным кодом было почти утрачено: изменения в коде основной ветки приходилось импортировать вручную.
Но это было внутренней проблемой группы HaikuWebKit.
Хуже было другое: даже после месяцев отладки и оптимизации, производительность HaikuWebKit оставляла желать лучшего. Виновник был найден, им оказалась отличная утилита cURL, используемая в WebKit. На других платформах, устроенных иначе, с cURL подобных проблем не было.
Вообще-то, своеобразное устройство Haiku (унаследованное от BeOS) - преимущество этих систем.
Было бы нелепостью откатывать операционную систему назад, и начинать все с начала, но замены для cURL пока не было.
Подумав, решили выпускать WebPositive таким, какой он есть.
Браузер был включен в состав R1/Alpha 2, или R1A2. Релизы Haiku разрешено обозначать любым из этих способов.
В сообщении об обновлении Web+ объявлялся с припиской о недостаточной "взрослости" браузера. На эту приписку журналисты и обозреватели внимание не обратили.
От первой альфа-версии WebPositive, в составе второй альфа-версии Haiku, они ожидали идеальной чистоты, производительности и заранее видели в нем убийцу если не Internet Explorer, то хотя бы Safari...
Не знаю, читали ли пресс-релиз пользователи, но их впечатления от браузера были скорее положительными. Кто-то из них назвал WebPositive самым позитивным браузером в мире. Я воспользовался этим сравнением.
История Web+ на этом не кончается, но в следующей части мы отвлечемся на подробное описание второй альфа-версии Haiku. Haiku R1A2.
Продолжение следует