Осенью прошлого года на переполненном рынке Internet-браузеров появился новый игрок — браузер с открытым кодом Google Chrome. Одним из «козырей» своей разработки в Google считают движок V8 — механизм, отвечающий за компиляцию и исполнение кода JavaScript, распределение памяти и другие базовые функции браузера. Команду V8, которая базируется в датском городе Аархус, возглавляет Ларс Бак, крупный специалист по виртуальным машинам Java; его разработками пользуются такие компании, как Sun Microsystems, Apple, HP. Московский офис Google организовал сеанс видеоконференц-связи с Данией, в ходе которого Ларс Бак ответил на вопросы Computerworld Россия.
Расскажите, пожалуйста, о предыстории разработки Google Chrome. Что побудило компанию заняться созданием браузера?
Два с половиной года назад, когда стартовал проект Chromium, стало очевидно, что на рынке браузеров наступила стагнация. Мы в Google постоянно сталкивались с тем, что разрабатываемые в компании Web-приложения не получают соответствующей поддержки в браузерах. Движки JavaScript были медленными, а выполнение Web-приложений — недостаточно надежным. Браузерам необходимы были инновации. Мы стремились инициировать процесс поиска новых технологий для браузеров, причем на первый план выходила проблема скорости.
С самого начала было принято решение: все инновации, которые будут реализованы в Chrome, должны стать общедоступными.
В чем значение технологии движка JavaScript для эффективной реализации браузера?
Чтобы браузер мог работать и с будущими Web-приложениями, ключевое значение имеет скорость выполнения JavaScript. Я занимаюсь разработкой виртуальных машин для разных языков программирования более 20 лет, и для меня очевидным выбором было начать с разработку нового движка с нуля, чтобы получить максимально быстрое решение. С того момента как был представлен Chrome, мы наблюдаем, что самая острая конкуренция между Web-браузерами происходит в части их производительности. Именно к этому мы и стремились — стимулировать инновации и добиться, чтобы создатели браузеров прилагали максимальные усилия к тому, чтобы пользователи получили наилучшие возможности навигации в Web. Кроме того, мы видим, что в последнее время все больше контента в Сети базируется на Web-приложениях, а не на HTML-страницах, как прежде.
Оказывают ли влияние разработки команды Chromium на создание Web-приложений Google?
Поставив задачу стимулировать инновации в браузерах, мы надеемся, что все будут уделять особое внимание вопросам производительности и масштабируемости Web-приложений, что в браузерах появятся возможности, позволяющие делать Web-приложения все более интересными. Если, к примеру, Gmail будет выполняться во всех браузерах на должном уровне, Googele сможет расширять его возможности. С этой точки зрения Chrome можно рассматривать как технологию, стимулирующую развитие Web-приложений, в том числе и приложений Google.
Что необходимо сделать, чтобы браузер Google мог эффективно конкурировать на этом рынке?
Необходимо продолжать инновации и в области пользовательского интерфейса, и в сфере возможностей JavaScript. Если говорить об интерфейсе, то нам надо быть очень внимательными к пожеланиям пользователей, чтобы своевременно реализовать их в интерфейсе браузера. Мы работаем и над тем, чтобы сделать систему еще быстрее — в JavaScript остается немало возможностей, из которых можно «выжать» дополнительную скорость. По моему мнению, Google инициировала здоровую конкуренцию между различными браузерами в отношении скорости выполнения JavaScript, и если эта конкуренция продолжится, пользователи только выиграют. В конечном итоге они получат быстрые браузеры и будут чувствовать себя гораздо лучше, путешествуя в Web.
Можно ли говорить сейчас, с появлением очередных версий браузеров разных производителей, о приходе нового поколения Internet-технологий?
Вновь повторю, что отправной точкой для создания Chrome было желание обеспечить возможность выполнять в браузере масштабируемые Web-приложения. И в перспективе благодаря новым технологиям все более сложные и интересные Web-приложения будут доступны всем пользователям Сети. Готовится стандарт HTML5, который включает в себя много новых функций, позволяющих поддерживать в браузере анимацию, аудио и видео. Дальше уже дело за Web-разработчиками — использовать все эти возможности для создания новых Web-приложений. Но я уверен, что инноваций будет очень много.
Уже сейчас мы наблюдаем, что среди пользователей немало тех, кто большую часть времени работает в браузере, а не в приложениях, установленных на компьютере. Думаю, что со временем значительная часть функциональности, которую раньше мы привыкли видеть в традиционных приложениях, перейдет в браузеры.
Расскажите, пожалуйста, о вашей работе до Google.
Я начал работать с виртуальными машинами в 1986 году. Недавно я посчитал, сколько виртуальных машин я разрабатывал, оказалось, семь. Наверное, могу считать себя экспертом в этой области. Мне приходилось работать и в больших компаниях, и в «стартапах». Одна из моих разработок — HotSpot, виртуальная машина Java, которую у нас купила Sun Microsystems. Это оказалась достаточно успешная виртуальная машина, которая по сей день широко используется в мире Java. Опыт работы с виртуальными машинами позволил мне перенести определенные наработки в область JavaScript. В то время когда мы начинали проект Chromium, большинство идей, реализованных в движках различных браузеров, были слишком упрощенными. Никто особо не тратил время на то, чтобы найти пути их оптимизации. Так что это была хорошая возможность применить свои знания, чтобы ускорить выполнение JavaScript и помочь пользователям улучшить работу в Web. Так что, с одной стороны, у меня довольно простой путь — я практически всю жизнь занимаюсь виртуальными машинами. С другой — я приобрел значительный опыт построения новых систем. Два с половиной года назад мы начинали с нуля, не были связаны ни с каким существующим кодом, а в проекте было всего два программиста. Но накопленный опыт позволил развить проект в правильном направлении и сформировать здесь, в Дании, очень сильную команду, которая специализируется на этих технологиях.
Проект Chromium — ваш первый опыт работы в сообществе Open Source?
Это мой первый опыт работы в проекте, где мы знали с самого начала, что разработка будет идти с открытым кодом. Большинство проектов, в которых я принимал участие до сих пор, оставались закрытыми, пока компании не принимали решение отдать их сообществу Open Source. Ряд виртуальных машин, над которыми я работал, сейчас доступны в открытых кодах.
Начав работу в Google над V8, я оказался в экстремальной ситуации, поскольку все изменения, которые мы делали в рамках проекта с момента выпуска бета-версии браузера, немедленно становились видимыми за его пределами. Подобный уровень открытости побуждает людей, не работающих в Google, вносить свой вклад в исходный код и помогать в разработке V8.
Что вы думаете о преимуществах и недостатках модели разработки Open Source?
Преимущества очевидны — люди со стороны помогают вам удостовериться, что вы делаете правильные вещи. Их комментарии и дополнения вносят вклад в совершенствование вашей системы. Отрицательный момент состоит в том, что, какие бы изменения вы ни вносили, они сразу же становятся видны людям извне, поэтому требуется особая тщательность при написании кода. Это одна из проблем Open Source — вы обязаны откликаться на все запросы. Если представить себе масштабы разработки продукта наподобие V8, то становится понятно, какой объем подобных коммуникаций возникает, когда такой проект переходит в статус Open Source.