WebPositive, самый позитивный веб-браузер в мире

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. Предыдущие части:

Битвы за браузер, проигранные

Скорее всего, самой первой попыткой создания нового браузера для 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.

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

Источник

Оставить комментарий

Спасибо что вы с нами