Pull to refresh

Взгляд изнутри: KHTML vs. Gecko vs. Trident vs. Presto

Reading time 5 min
Views 12K
Original author: Jack M. Germain
Взгляд изнутриПримечание: ниже расположен перевод статьи «KHTML vs. Gecko vs. Trident vs. Presto: Behind the Browser», в которой рассматриваются основные движки браузеров, история их возникновения и развития, а также некоторые философские вопросы, с ними связанные. В основном, речь идет о KHTML, WebKit и Gecko.

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

В любом случае, пользователей гораздо больше беспокоит, насколько их браузер безопаснее. Возможно, их тревожит, были ли старые версии браузера от Apple более безопасными, потому что использовали KHTML? Или, может быть, безопасность и удобство использования гораздо выше у Firefox от Mozilla Foundation, ибо он использует Gecko? Является ли Internet Explorer 7 (IE7) от Microsoft лучшим браузером на сегодняшний день, потому что использует движок Trident? Отчего так много возможных альтернатив?

«Почему мы используем не единственный браузерный движок? Это помогает замедлить инновационное развитие и предупредить появление ошибок, которые не обнаружатся во всех браузерах одновременно. В любом случае, несколько реализаций одного и того же лучше, чем одна», — комментирует Gene Spafford, профессор информатики в Purdue University, специально для LinuxInsider.


Что за звери?



Тремя основными браузерными движками на сегодняшний день являются Trident, Gecko и Presto. IE7 основан на движке Trident.

Mozilla использует Gecko в Firefox и в почтовом клиенте Thunderbird, ее примеру следуют и некоторые другие браузеры с открытым кодом. Opera Software использует Presto как движок для отображения страниц в своем браузере. Еще его использует Nokia в своей линейке продуктов Internet Tablet. Также некоторые продукты Nintendo базируются на Presto.

Apple окончательно отказалась от развития модели KHTML. Она частично использовала код KHTML для создания своего собственно HTML-движка WebKit.

«KHTML больше не существует для современного Веба», — заявляет Guy Lunardi, менеджер по продукции в Novell, специально для LinuxInsider.

В чем различия?



И в браузере Apple Safari, и в Apple iPhone используется WebKit. Однако, согласно Lunardi, популярность WebKit на этом не ограничивается.

WebKit на текущий момент также используется в Adobe AIR (Adobe Integrated Runtime) и смартфонах Nokia.

Однако, не стоит думать, как говорит создатель KHTML, Lars Knoll, ныне работающий разработчиком программного обеспечения для Trolltech, что его легендарный движок уйдет в прошлое. Исходный код KHTML гораздо меньше и легче для работы, чем Gecko, по мнению Knoll.

«Если рассматривать последние новшества в KHTML, я полагаю, что основным продвижением стоит считать его сближение с разработкой WebKit», — он рассказал LinuxInsider в интервью из своего офиса в Осло, Норвегия.

В самом начале



KHTML начинался как часть KDE 2.0, графической среды для рабочего стола в некоторых операционных системах на базе Linux. KHTML составляет основу веб-браузера под Linux — Konqueror — и встроенного в KDE браузера и диспетчера файлов на базе KHTML.

Его расцвет пришелся на упадок популярность браузера Netscape. Но его положение пошатнулось с возвращением движка Gecko, в тяжких муках отделенного от исходных кодов браузера Netscape сообществом Mozilla Foundation.

«С самого начала целью Gecko было создание полноценной платформы для разработчиков, тогда как KHTML всегда оставался только движком для визуализации HTML», — говорит Knoll. — «Основная идея, которая была заложена в KHTML, — это создание совместимого со стандартами HTML-движка, которые будет поддерживать все самые современные (на то время) веб-страницы, использующие CSS (каскадные таблицы стилей) и JS (JavaScript)».

Коммерческий проект Mozilla/Gecko поддерживался сначала Netscape, а затем AOL. Позже Mozilla Foundation способствовало появлению большого числа наемных разработчиков для движка Gecko, добавляет он.

«KHTML всегда был исключительно добровольным проектом, пока к нему не подключилась Apple. Никто из людей, которые работали над KHTML до 2003, не получил денег за ту работу, которую проделал», объясняет Knoll.

Пути разошлись



Цели обоих проектов по визуализации веб-страниц были одинаковыми. Когда между ними было много различий, оба создали совместимый со стандартами HTML-движок, который мог обрабатывать все существующие в интернете страницы. На сегодняшний день они оба обеспечивают в той или иной мере одинаковую функциональность: HTML 4.1, XHTML, CSS 2.1, JavaScript и веб-приложения, использующие AJAX, говорит Knoll.

Одной из основных задач, которую ставил перед собой Knoll в самом начале, по его словам, была попытка создать гибкую и максимально простую архитектуру для движка визуализации HTML. Это позволило легко влиться и внести свою лепту в проект другим учаcтникам.

«Возможно, это было основной причиной для Apple в выборе между KHTML и Gecko для своего браузера Safari», предполагает Knoll.

Lunardi из Novell соглашается, что производительность среди бразуеров не является наиболее критичным фактором. Во всех браузерных движках заложено множество стандартов и спецификаций, в том числе, HTML, CSS, объектная модель XML-документа (DOM), RDF (архитектура описания ресурсов, (resource description framework)), JavaScript и многое другое.

Одинаковые отличия



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

«Например, они будет разбирать одинаковый код по-разному. Разными путями будут добиваться соответствия спецификациям. И в обработке ошибки и некорректного содержания страниц они будут различаться», говорит Lunardi.

Knoll поддерживал проект KHTML до 2003, когда передал управление над ним и перешел к конкретным задачам. По существу, он совершил полный круг в качестве разработчика программного обеспечения и вернулся к тому, с чего начал. Прошлой осенью он приступил к работе над WebKit, пытаясь включить этот движок в KDE 4.

Лучших нет



Пользователям будет крайне затруднительно выбрать между браузерами, исходя исключительно из их внутреннего движка. Ни один из движков, будучи установленным совместно с другими, не приводит к каким-то конфликтам у пользователя или головной боли разработчиков программ, подчеркивает Knoll.

Выбор конкретного движка очень сильно зависит от текущих условий для разработчиков браузеров. Например, KHTML больше всего подходит для интегрированных устройств из-за меньшего объема занимаемой памяти. У Gecko больше доля рынка, поясняет Knoll.

Для веб-разработчиков существуют свои нюансы, но они достаточно тривиальны, говорит Knoll. Наибольшая проблема для разработчиков, возможно, заключается в различиях между браузерами, совместимыми со стандартами (Gecko, KHTML и WebKit (прим. и Opera)), и IE.

«В конце концов, это дело вкуса, какой браузер использовать. Для Linux существует три возможных варианта: Firefox (или другой браузер на движке Gecko), Konqueror или Opera. Будучи пользователем, вы можете выбрать то, что вам больше всего понравится», заключает Knoll.

Почему не единственный?



Почему же нет одного стандартного движка для всех браузеров? Для этого Knoll видит две причины, почему существование единственного движка визуализации веб-страниц отрицательно бы сказалось на конечных потребителях.

При наличии только одной реализации движка отображения не было бы никаких гарантий, что он соответствует документации. Это также не будет гарантировать, что стандарты вообще будут как-то реализованы, утверждает он.

Существование нескольких движков хорошо и с точки зрения рыночной конкуренции: если на рынке существует монополия, то нет никаких стимулов развиваться дальше, соглашается он с точкой зрения Spafford.

«Результат этого мы видим сейчас среди браузеров, которые пытаются быть максимально быстрыми или максимально совместимыми со стандартами», говорит он.

Спасибо всем, кто нашел в себе силы ознакомиться и с этим переводом. Будет замечательно, если вы поделитесь своими мыслями в комментариях.

Web Optimizator: проверка скорости загрузки сайтов
Tags:
Hubs:
+27
Comments 32
Comments Comments 32

Articles