То, как сообществу WebKit удавалось не только оставаться вместе, но в основном «хорошо играть», оставалось загадкой. Теперь у нас есть не совсем непредсказуемый раскол, когда Google создает новый, но производный от WebKit, движок под названием Blink, поддержку которого Opera уже подписала.
Apple и Google некоторое время работали вместе над проектом WebKit, но между двумя компаниями было много противоречий из-за их разных потребностей. См. Кто создает WebKit?
Apple использует WebKit в своем браузере Safari, но Google использует WebKit как часть браузера Chrome и Chrome OS. Это означает, что Apple действительно хочет, чтобы WebKit был достаточно хорош для работы браузера, но Google нужно больше.
На самом деле, у Apple есть даже недостатки, если браузер Safari станет более мощным, потому что веб-приложения находятся вне контроля Apple и могут отрицательно повлиять на App Store и прибыль Apple.
Обратите внимание, что WebKit — это ни в коем случае не весь браузер. Это механизм рендеринга HTML, который строит графическое представление страницы и позволяет движку JavaScript взаимодействовать с DOM и т. Д. Существуют довольно большие различия в представлении между браузерами, основанными на одном и том же механизме рендеринга. Однако с точки зрения программиста можно ожидать, что браузеры, использующие один и тот же механизм, будут вести себя одинаково. Они образуют единую платформу для веб-приложений. Так что, если какое-то приложение работает в Safari, то, вероятно, оно будет работать в Chrome точно так же. Вот почему решение Opera отказаться от разработки собственного движка браузера и использовать WebKit было как хорошей, так и плохой новостью — на одну платформу меньше.
Теперь у нас есть раскол в сообществе WebKit, которое собирается создать еще одну веб-платформу. Google решил, что ему нужен движок рендеринга, над которым у него есть больший контроль, и разработал WebKit для создания Blink. Аргумент состоит в том, что Google сможет быстрее внедрять инновации и упростить код Blink, поскольку ему не придется поддерживать ряд архитектур. Процитируем блог Chromium:
«В краткосрочной перспективе Blink мало что изменит для веб-разработчиков. Основная часть первоначальной работы будет сосредоточена на внутренних улучшениях архитектуры и упрощении кодовой базы. Например, мы ожидаем, что сможем удалить 7 систем сборки. и сразу же удалить более 7000 файлов, содержащих более 4,5 миллионов строк. В долгосрочной перспективе более здоровая кодовая база приводит к большей стабильности и меньшему количеству ошибок ».
Это звучит как стоящая экономия, но разработчики ждут, что «в краткосрочной перспективе». Конечно, в долгосрочной перспективе Blink будет отличаться от ядра WebKit и представит новые функции, которые сделают его самостоятельным. Однако нам обещали, что не будет нового префикса CSS для Blink — определенные функции будут включены с помощью параметров. Blink Developer FAQ обещает, что это ускорит работу DOM и JS-движка, сохраняя при этом безопасность браузера.
А как насчет совместимости?
Вы можете подумать, что простое соблюдение стандартов HTML5 или W3C в целом гарантирует единообразие в браузерах, но все мы знаем, что это не так. FAQ. делает все возможное, чтобы успокоить наши умы, заявляя, что совместимость важна. Однако он лучше доказывает, что разнообразие полезно для инноваций, а с несовместимостью просто нужно жить. Процитируем FAQ:
Итак, у нас есть еще более фрагментированная история мобильного WebKit?
Мы действительно этого не хотим; время, потраченное на устранение различий, — это время, не потраченное на создание функций ваших приложений. Мы стремимся сделать Chrome для Android лучшим браузером для мобильных устройств. Таким образом, вы должны ожидать такой же совместимости, быстрого графика выпуска и сверхвысокой производительности JS и DOM, которые вы получаете в настольном Chrome.
Успех вашего сайта или приложения в мобильной сети зависит от мобильных браузеров, в которых они работают. Мы хотим видеть, что вся мобильная веб-платформа идет в ногу с амбициями вашего приложения и даже предвосхищает их. Opera уже выпускает бета-версию своего браузера на основе Chromium, который имеет функции и возможности, очень похожие на то, что есть в Chrome на Android.
Так что да …
Есть еще одна интересная проблема для Google. В настоящее время Chrome является единственной альтернативой Safari на iOS, но правила игры, изобретенные Apple, гласят, что любой браузер iOS должен использовать WebKit. Если в будущем Chrome будет работать под iOS, либо Google придется выпустить специальную версию, либо Apple будет рассматривать Blink как версию WebKit. Это могло быть интересно.
Объединяя это вместе с объявлением Mozilla о новом движке рендеринга в форме Серво (Mozilla Builds Servo A New Browser Engine), кажется, что мы вступаем в новое и более фрагментированное время. В принципе, веб-платформа должна быть унифицирована, но мы знаем, что на практике это не так. Каждый браузер или, точнее, движок браузера — это отдельная платформа, для которой мы должны настраивать приложения. Внезапное изменение механизма рендеринга в Chrome — это то же самое, что, скажем, Ubuntu решила использовать собственное ядро Linux, а не просто косметическое изменение.
Оно того стоит?
С точки зрения Google очень вероятно.