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

http://www.technewsworld.com/rsstory/59309.html
  • Перевод
Взгляд изнутриПримечание: ниже расположен перевод статьи «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: проверка скорости загрузки сайтов
Поделиться публикацией

Похожие публикации

Комментарии 32
    +1
    Кто нить сделайте бразуер где можно переключать движки. Пожааалуууйста :)
    • НЛО прилетело и опубликовало эту надпись здесь
        +3
        Разработчикам.
          0
          Там была какая то ошибка которая что-то портила. Вот и убрали Trident из Netscape.
          +3
          плагин для ФФ - IE Tab
          насчет оперы не знаю, не задумывался пока что
            0
            У него, кстати, проблемы с утечкой памяти..
              +1
              А у меня ФФ всё время проблемы с памятью и с IE Tab и без
              0
              Ага, использую его :)
              Очень полезная вещь!
                0
                Оперу можно так же запускать с IE движком во вкладке... однако ни разу не пользовался. кнопка "открыть в ИЕ" требовалась раза 2 всего.
                +2
                дык есть уже. его имя десктоп. снизу (или сбоку как у меня) удобная панелька на которой кнопочки с названиями браузеров. переключаться между ними можно кликнув по соответствующей кнопке. или альт+таб :)
                  0
                  Firefox =) C подключением соответствующих плагинов он может пользоваться движком Осла. Насчет Оперы не знаю, правда...
                    0
                    Когда-то видел MyIE2 на Gecko ну и на родном движках.
                      0
                      Было несколько надстроек для IE, которые также поддерживали Gecko. Были симпатичные реализации, но сейчас я их не вспомню. Под Linux проекты были (Kazehakase).

                      А в интернет-планшетах Nokia (Maemo) в браузере по умолчанию используется Presto, но можно доустанавливать WebKit и Gecko, а потом переключаться между всеми этими движками через меню.
                        0
                        Kazehakase вроде как умеет.
                          0
                          Блин, туплю. За меня уже написали, а кроме того, этому переводу уже год О_о
                        +2
                        Про Оперу вообще почти ни слова, а ведь это наше все - http://zoob.ru/2007/09/13/heaven/
                        :)
                        Вот здесь ( http://www.avencius.nl/?q=node/587 ) про Presto можно поподробнее почитать.
                          0
                          Согласен,
                          >> Например, KHTML больше всего подходит для интегрированных устройств из-за меньшего объема занимаемой памяти.

                          Ничего не имею против KHTML, сам иногда использую Konqueror, но по-моему в данном случае преуменьшаются достижения Opera (движка Pronto) на поприще экономии ресурсов. Opera Mini работает практически на любом поддерживающем Java телефоне, а KHTML/Webkit браузеры всё больше на смартфонах от Nokia.
                            0
                            Opera Mini не имеет отношения к Presto (движку "большой" Оперы).
                              0
                              Имеет, хоть и косвенное. Сервера Opera Mini 4 используют движок Presto для сжатия страниц, перед тем как отправить их на экран телефона пользователю.
                                0
                                1. Это временное решение - пока 64Mb RAM и ARM'овский проц нельзя упихать в корпус нормального телефона (не смартфона).
                                2. Для телефонов сложные Web-приложения (а стало быть и движки) не так актуальны ибо траффик дорогой, а зато есть MIDP (которые позволяет экономить траффик больше, чем любой движок).
                                  0
                                  1. Уже в продаже - http://www.phonearena.com/htmls/Nokia-61…
                                  64MB RAM and ARM 11 processor with Clock Rate at 369 MHz.
                                  Смартфон в виде нормального телефона.
                                    0
                                    Ну это первенец, всё-таки это ещё не mainstream. Но думаю через 2-3 года все телефоны будут включать в себя нормальный WebBrowser (и скорее всего на основе WebKit'а), после чего в Opera Mini нужды не будет...
                                      0
                                      Ну вот когда прийдет 3G и трафик будет стоить 10 копеек за гигабайт...
                          +6
                          Бестолковая какая-то статья. По мнению того-то бла-бла-бла, а там говорят то-то. Продираться через всё это довольно тяжело.
                            +1
                            Тоже ожидал большего от статьи с таким названием, например, сравнение архитектуры движков, технических особенностей, которые позволяет более непредвзято их сравнить.
                            +2
                            Несколько досадных опечаток

                            1. Почему им используем не единственный браузерный движок?
                            2. ... графической среды для рабочего стола в некоторый операционных системах на базе Linux
                            3. KHTML всегда был исключительно добровольным проектов
                            4. HTML-движок, который мог обрабатывать все существующий в интернете страницы
                              +1
                              В целом статья понравилась. Я только год назад начал задумываться о том, какой движек/браузер я использую. До этого, выбор опирался только на удобство.
                              Однако, если интересует мнения не во отношении контента статьи а касаемо стиля изложения и самого текста, то - тяжеловато читать. Много воды. Но это скорее минус не переводчика а автора статьи. Так что, переводчику спасибо. Ликбез пошел на пользу.
                                0
                                Вообще, из всего, что я пользовал, больше всего понравился Wordpress: самая компактная, при этом функциональная и расширяемая. Понравилось.
                                  +1
                                  блин, не в то окно написал! Вот вам и браузер. Есть минусы и у табов в браузерах: иногда можно запутаться в них.
                                  0
                                  Было очень интересно прочитать о движках браузеров. Спасибо за статью.
                                    +1
                                    >Результат этого мы видит сейчас
                                    Исправьте, пожалуйста.
                                      0
                                      Достаточно познавательно.

                                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                      Самое читаемое