Архивы: по дате | по разделам | по авторам

Создатель Internet Explorer 9 о стандартах и конкуренции

АрхивСофтерра
автор : Андрей Письменный   14.04.2010

Алекс Могилевский снова посетил Москву и обсудил с "Компьютеррой" подробности работы над браузером Internet Explorer 9 и другие вопросы.

Я прохожу холл "Рэдиссон Славянской" и сворачиваю вслед за встретившим меня сотрудником российского Microsoft в небольшое кафе. В самом дальнем его углу за пустым столиком сидит человек, внешне куда больше похожий на рок-музыканта чем на программиста. Его зовут Алекс Могилевский и он приехал навестить свою родину в качестве представителя группы разработчиков Internet Explorer 9.

Могилевский входит в совет консорциума W3C и следит за тем, чтобы работа движка Internet Explorer не расходилась с утверждёнными стандартами. За разговорами о технологиях и стандартах я даже не задал ему вопроса о жизни русских программистов в Америке. Впрочем, мы ведь и так отлично знаем, что наш программист в США – это герой, напоминающий помесь Нео с Данилой из "Брата 2" и способный показать корпоративной Америке, что быть первоклассным хакером не сложнее, чем плести лапти, плясать вприсядку и дрессировать медведей.

- Для начала расскажите о своей роли в команде Internet Explorer.

- Ну это вопрос простой: я там программу пишу. Раз я один из людей, которые дольше всего работают над этим проектом, то получается, что я не всегда только пишу программу, но я ещё разговариваю с людьми о том, как это лучше делать, мы вместе решаем, что и как нужно построить. Было бы интересно, если бы в таких проектах был бы один главный архитектор, который решает абсолютно всё и раздаёт всем задания, но мне кажется, что в команде большей, чем десять человек, так просто не бывает.

- Какие основные цели стоят перед командой при разработке новой версии Internet Explorer?

- Самые большие цели – это производительность и новые стандарты. Новые - не потому что просто новые, а те, которые люди хотят видеть во всех платформах. У нас уже есть многое из HTML5, многое из CSS3, есть SVG.

- Но в прошлом году вы то же самое говорили "Компьютерре" про IE8.

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

- А не могли бы вы рассказать поподробнее о вашей команде? Сколько, в частности, человек работает над IE?

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

- Интерфейс и движок разрабатываются одной командой, или ими занимаются разные люди?

- Вот это как раз недавно изменилось. Когда мы делали IE6, я работал над платформой и даже не знал, как выглядят люди, работающие над пользовательским интерфейсом. Они находились в другом здании, они получали компоненты, всё остальное вокруг строилось где-то в другом месте. Сейчас мы все работаем в одной команде, и если за два месяца до конца окажется, что у кого-то из нас куда меньше багов, чем у других, может быть, я пойду чинить баги в интерфейсе, или люди из интерфейса пойдут чинить баги платформы. То есть теперь мы действительно работаем как одна команда.

- Сколько составляет цикл разработки?

- Каждый раз, когда мы выпускаем новую версию, мы решаем это заново. У нас нет такого правила как у создателей лэптопов, игр или телефонов - каждый год что-то выпускать в одно и то же время или приуроченно к какому-нибудь событию вроде рождества или начала учёбы.

- В некоторых опенсорсных проектах принято выпускать релизы регулярно.

- Это не совсем так. Если посмотреть, как выходит Firefox, то окажется чаще, чем IE, но тоже не строго по часам. Необходим баланс между тем, что можно переписать серьёзно, и как часто мы это можем делать. Мы хотим делать это как можно чаще, но если речь о том, чтобы добавить что-нибудь вроде SVG (а документация SVG - вот такой [показывает сантиметров восемь - прим. автора] величины) или полностью переписать движок JavaScript, нужно какое-то время.

- Давайте поговорим о стандартах. Есть ли какая-то общая стратегия их внедрения?

- Самая главная стратегия - делать стандарты, которые действительно кому-то нужны. Стандарты в интернете - это не стандарты в физике или экономике. Стандарты в интернете - это какой-то набор соглашений между производителями и разработчиками о том, как вещи должны работать, чтобы они были совместимы. И почти все стандарты, о которых мы говорим, имеют довольно длинный цикл от предложения до настоящего стандарта. HTML5 – это не стандарт и ещё лет десять не станет стандартом, CSS 2.1 - это ещё не стандарт, он только в этом году может стать стандартом. Поэтому во всех наших разработках мы рассматриваем нужды разработчиков и пользователей и выбираем самые востребованные свойства. Это, впрочем, относится к чему угодно другому. Если окажется, что то, что хотят люди, нигде в стандарте не представлено, мы, наверное (теперь, когда мы любим стандарты), пошлём предложение в соответствующую организацию, чтобы это стало стандартом.

- То есть отставание в поддержке стандартов от других браузеров - намеренное?

- Я такого не говорил! То, что стало назваться стандартами, появилось, когда люди решили написать новые браузеры и не обременять себя с тем, что уже написано. То есть давайте сделаем революцию и те, кто написал для "Нетскейпа" что-нибудь до 1998 года, останется там, а мы сделаем по-новому, и новые страницы будут писаться для нас. Такого рода вещи случаются, они случаются редко, как правило не работают. Когда люди в бывшем Netscape нам об этом сказали, мы не поверили, мы решили "не, ребята, у вас ничего не получится". В тот момент шестой IE имел 95 процентов рынка, мы решили, что идти за революционерами – глупо, менять браузер, которым все пользуются – тоже глупо, поэтому мы перестали этим заниматься лет на пять или шесть. Там была цепь неправильных решений - я не буду их защищать, но это остаётся фактом - мы не занимались браузером очень долго. Если чем-то не заниматься очень долго, то конкуренты могут чего-нибудь достичь. Те люди, которым мы не поверили, стали популярными и сделали что-то новое и стали называть это стандартами. Так вот, теперь мы видим, что то, что придумали наши друзья, популярно, и мы добавляем в наш браузер эти новые интересные вещи, которые люди называют стандартами.

- Выходит, Microsoft всё же хочет присоединиться к тем, кто любит быстро добавлять новые функции?

- Ещё раз скажу, что мы делаем то, что людям нужно.

- То, что есть в IE9 Preview – это всё, что войдёт в релиз, или возможны ещё какие-то нововведения?

- Это не всё, будет ещё кое-что.

- Именно в области стандартов?

– Да.

- А когда новая версия выходит?

- Я ещё не могу объявлять дату.

- Ну, в этом году?

- Вы можете посмотреть на историю предыдущей версии, посмотреть сколько примерно проходит времени между первым выпуском и окончательным релизом [это заняло около года – прим. автора]. Если я вам скажу точную дату, и она не сбудется, вы будете показывать на меня пальцем!

- Насколько важна для браузера скорость? Приоритетна ли она по отношению к поддержке стандартов?

- Если бы мы сделали много новых свойств, но сделали бы их очень медленными, никому бы это не было нужно. Если бы мы сделали только очень-очень быстрый браузер, но без единого нового свойства, это, наверное, было бы полезно.

- Выходит, скорость в приоритете?

- Совершенно верно.

- Каким образом в новой версии достигается это ускорение? В частности, графики.

- Производительность - это довольно многомерная вещь. Есть много вещей, которые участвуют в процессе от обращения к проводу до того момента, когда пиксели загорятся на мониторе. И в этом процессе есть несколько вещей, которые мы переделываем очень серьёзно. У нас есть новый движок JavaScript, который работает намного быстрее, чем предыдущий. Он написан совсем с нуля с учётом того, как сейчас используется JavaScript. Мы учли и новые подходы к программированию и существование новых многоядерных процессоров. Есть новая графическая система, которая использует ресурсы видеокарты. Кто-то пробовал превью и обнаружил ускорение в сто раз между Chrome и IE9 на некоторых тестируемых вещах, связанных с большим количеством графики. Есть и другие серьёзные улучшения.

- Хотелось бы узнать технические подробности. Как именно достигнуто ускорение JavaScript?

- Не знаю, насколько технически глубоко рассказывать, я не читаю каждую строчку кода, но ключевая вещь, которую делает наш движок JavaScript - это компиляция. Важно также решение, когда нужно и когда не нужно компилировать. Бывает так, что если скрипт исполняет каждую строчку по разу, то компилировать будет бесполезно и медленно. Есть другая важная вещь – компиляция происходит в фоновом процессе, обычно на другом ядре. То линейное время, которое требовалось скрипту, раньше не только становится меньше, но исчезает.

- В целом, это звучит похоже на Tracemonkey и Opera.

- В общем это современная технология программирования. За большую часть того, что мы делаем, мы не получим Нобелевскую премию.

- Давайте поговорим о новых возможностях. В IE9 будет поддерживаться тег video и кодек H.264. Почему именно этот кодек?

- Это хороший стандарт - этого достаточно.

- Mozilla, к примеру, агитирует за поддержку Theora.

- Я знаю, почему Mozilla агитирует за Theora. У них нет кода для поддержки H.264. Если бы им кто-нибудь дал бесплатно код, они бы были совершенно счастливы.

- Но они же даже заблокировали плагин, реализующий H.264 из идеологических соображений.

- Именно так. Всё, что делает Mozilla, должно быть открыто, а open-source кода для H.264 пока что никто не написал. Когда кто-нибудь напишет, Mozilla будет счастлива. Или им самим придётся написать.

- То есть поддержки Theora в IE можно не ждать?

- Политические вопросы вокруг Theora я обсуждать не могу.

- А если Google будет использовать для тега video свой кодек VP8, Microsoft последует?

- Не знаю, может быть. Почему столько времени заняла реализация тега video: трудно найти формат, который не защищён какими-то патентами, который можно использовать бесплатно. В случае с H.264 компромисс найден, и если найдутся какие-то другие форматы, которые компании могут использовать без риска получить санкции, их, конечно, можно будет поддерживать.

- В отличие от тега video, тег canvas в IE9 не появится.

- Я не могу рассказывать ни о чём, что не включено в платформу. И я не могу ни подтвердить, ни подтвердить ни опровергнуть любое из пожеланий, которое есть в этом списке.

- Но вы уже говорили о том, что Microsoft хочет все те же игрушки, что и у других. Не получится ли так, что HTML5 начнёт конкурировать с другими решениями компании вроде Silverlight?

- Я даже не знаю, каким образом отвечать на этот вопрос. HTML5 – это платформа для того, чтобы создавать на ней страницы и приложения, это то, что люди уже используют. Если сделать это хорошо, то это пойдёт на пользу всем участникам. Будущее же Flash и Silverlight и каких-то других технологий – совсем другая история. Сравнивать работу над будущим интернетом и решать, делать это или не делать, из-за того, что у нас есть какая-то другая технология, которая тоже показывает видео на экране - это бессмысленно.

- У Microsoft есть и ещё одна технология, причём очень древняя. Я говорю об ActiveX.

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

- Internet Explorer 6 тоже по-прежнему занимает заметную долю рынка. Можно ли с этим что-нибудь сделать?

- Мы всё время об этом говорим, мы стараемся помочь и стимулировать людей как только можем, чтобы они переходили на новые браузеры, чтобы те, кому нужен апгрейд, делали апгрейд. С технической точки зрения мы уже сделали всё, что могли. Но мы не можем делать апгрейд насильно. Хотя мы не поддерживаем IE6 ни в одном продукте Microsoft, мы, конечно же будем продолжать выпускать обновления безопасности ещё долго. Это наше обязательство. Если есть какая-то ужасная проблема, которая может повлиять на компьютеры людей, мы её исправим.

- В чём же причина такой необходимости?

- Есть приложения, написанные как раз в те годы, когда IE был единственным браузером. Есть многие приложения – в интернете и, в особенно больших количествах, в интранетах - в компаниях, где бизнес просто зависит от приложений, которые работают только в IE6 и ни в чём другом. Они будут сломаны, если сделать апгрейд до другой версии.

- Как изменилась ситуация после того, как доля Internet Explorer существенно уменьшилась? Стало лучше или хуже?

- Конкуренция - это всегда лучше для прогресса.

- А как же желание разработчиков иметь единый стандарт, на который можно рассчитывать?

- Это как раз очень забавно – нас всё время спрашивают, когда Microsoft перестанет заниматься своим браузером и перейдёт на WebKit. Вопрос отличный - ответ отрицательный. Мне интересна логика в голове людей, которые задают этот вопрос. Человек считает, что нехорошо, когда у какой-то компании в прошлом был один браузер, который занимал весь рынок. Из-за того, что браузер занимал весь рынок, компания перестаёт его развивать. Будет ли лучше, если мы весь этот рынок передадим другой компании?

- Но ведь WebKit поддерживает не одна компания.

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

- Ощущается ли политизированность при принятии важных решений? Ситуация сейчас накалённая и каждая из крупных компаний пытается делать веб таким, какой бы соответствовал собственной стратегии. Apple хочет продавать побольше устройств с браузером, Google хочет сделать из веба вообще всё. Чего в таком контексте хочет Microsoft?

- Мы хотим, чтобы веб хорошо работал в Windows. Там, где мы можем использовать замечательные свойства Windows - к примеру, замечательную и сильную графику. В IE9 SVG и HTML Video работают лучше чем где бы то ни было - из-за системной поддержки.

- Готов ли веб стать заменой стандартному способу разработки приложений?

- Это можно делать уже очень давно. Какие-то вещи – с тех пор, как он вообще появился. Сейчас просто стало гораздо больше возможностей. При наличии HTML5 и Local storage и, не знаю даже как по-английски называется, заворачивания приложений так, чтобы они не выглядели как страницы, у них не было тулбара, зато был бы значок на рабочем столе. Но это всё вещи косметические. Если есть технология, которая позволяет это сделать, граница между страницами с JavaScript и приложениями постепенно уменьшается. Не в последнюю очередь - за счёт скорости.

- Немного о мобильных платформах. Складывается впечатление, что на них браузер сильно раздроблен – есть старый Windows Mobile, есть новый Windows Phone 7, есть Zune, теперь ещё и Kin... Есть ли стратегия по их объединению?

- Стратегия такая есть.

- Но пока они остаются разрозненными?

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

- Каков ландшафт мобильных решений сейчас?

- Я точно не могу сказать, какая версия мобильного браузера с какой десктопной версией совпадает. Но мобильные браузеры отстают. Это не совсем те же браузеры – над ними проделано много работы, чтобы они запускались на мобильных устройствах. Там пользовательский интерфейс для мобильных устройств, они что-то модифицируют в страницах, чтобы сжать страницу для маленького экрана.

- У нас было много разговоров о технике - про скорость и стандарты. Хотелось бы спросить и про интерфейс. Как вы думаете, он будет дальше развиваться?

- Я вообще надеюсь, что в будущем мы все будем идеально выполнять технические стандарты (это может занять лет десять или двадцать - есть ещё множество хороших вещей, которые пока никто даже не предложил). В этом светлом будущем браузеры будут различаться только удобством пользования. Будут разные интерфейсы и разные подходы к ним. О грядущих изменениях в интерфейсе IE я пока что не могу рассказать, но в совсем недалёком будущем появится бета-версия, в которой будет кое-что интересное.

© ООО "Компьютерра-Онлайн", 1997-2024
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.