Один из разработчиков GNOME провел анализ
движков Webkit и Mozilla Gecko с точки зрения их пригодности для
интегрирации в GNOME. Сравниваются не только возможности движков, но
плюсы и минусы для разработчиков, особенности поддержки кода и
лицензионной политики. Mozilla характеризуется как более зрелый движок,
а Webkit как пытающийся найти свое место на рынке. Заметка написана на основе опыта по интеграции Webkit в GNOME
и разработке библиотеки webkit-gtk. В настоящее время в GNOME
используется движок Mozilla (epiphany, yelp, devhelp), но в GNOME 2.26
планировалось реализовать дополнительную поддержку WebKit, работы
оказалось больше чем ожидалось и реализацию перенесли на релиз GNOME
2.28.
Из достоинств WebKit можно отметить качественный API и готовый
GObject биндинг, завязанность на близкие к Gnome библиотеки (Cairo,
Pango, libsoup и GStreamer), хорошую документацию к коду. С другой
стороны развитие кода WebKit в большей мере контролируется
коммерческими вендорами (Apple и Google), а создание GNOME-бэкенда
потребовало написания значительного объема кода. Движок Gecko более абстрактен, имеет более широкое сообщество
независимых разработчиков не связанных с интересами коммерческих
компаний (но Mozilla Foundation держит проект в жестких рамках), лучше
совместим с web сайтами (его учитывают больше web-мастеров). Проблемы
Gecko - негарантированность сохранения совместимости API в будущих
релизах, содержание дополнительного кода, связанного с парсингом XUL
(XML User Interface Language).
По возможностям и производительности движки очень близки. Код
Gecko и WebKit написан на C++, Mozilla использует систему сборки и
контроля изменений на основе autotools и Mercurial, а webkit -
autotools/XCode и Subversion. Патчи в оба проекта принимаются только
после одобрения сторонним рецензентом.
|