Компьютерра PDA 10.04.2010-16.04.2010
Шрифт:
– Какие основные цели стоят перед командой при разработке новой версии Internet Explorer?
– Самые большие цели – это производительность и новые стандарты. Новые - не потому что просто новые, а те, которые люди хотят видеть во всех платформах. У нас уже есть многое из HTML5, многое из CSS3, есть SVG.
– Но в прошлом году вы то же самое говорили "Компьютерре" про IE8.
– Я боюсь, что эти цели будут для браузеров всегда главными. Я не знаю, может когда-нибудь люди будут просить, чтобы помедленнее заработало, тогда поставим другие цели.
– А не могли бы вы рассказать поподробнее о вашей команде? Сколько, в частности, человек работает над IE?
–
– Интерфейс и движок разрабатываются одной командой, или ими занимаются разные люди?
– Вот это как раз недавно изменилось. Когда мы делали IE6, я работал над платформой и даже не знал, как выглядят люди, работающие над пользовательским интерфейсом. Они находились в другом здании, они получали компоненты, всё остальное вокруг строилось где-то в другом месте. Сейчас мы все работаем в одной команде, и если за два месяца до конца окажется, что у кого-то из нас куда меньше багов, чем у других, может быть, я пойду чинить баги в интерфейсе, или люди из интерфейса пойдут чинить баги платформы. То есть теперь мы действительно работаем как одна команда.
– Сколько составляет цикл разработки?
– Каждый раз, когда мы выпускаем новую версию, мы решаем это заново. У нас нет такого правила как у создателей лэптопов, игр или телефонов - каждый год что-то выпускать в одно и то же время или приуроченно к какому-нибудь событию вроде рождества или начала учёбы.
– В некоторых опенсорсных проектах принято выпускать релизы регулярно.
– Это не совсем так. Если посмотреть, как выходит Firefox, то окажется чаще, чем IE, но тоже не строго по часам. Необходим баланс между тем, что можно переписать серьёзно, и как часто мы это можем делать. Мы хотим делать это как можно чаще, но если речь о том, чтобы добавить что-нибудь вроде SVG (а документация SVG - вот такой [показывает сантиметров восемь - прим. автора] величины) или полностью переписать движок JavaScript, нужно какое-то время.
– Давайте поговорим о стандартах. Есть ли какая-то общая стратегия их внедрения?
– Самая главная стратегия - делать стандарты, которые действительно кому-то нужны. Стандарты в интернете - это не стандарты в физике или экономике. Стандарты в интернете - это какой-то набор соглашений между производителями и разработчиками о том, как вещи должны работать, чтобы они были совместимы. И почти все стандарты, о которых мы говорим, имеют довольно длинный цикл от предложения до настоящего стандарта. HTML5 – это не стандарт и ещё лет десять не станет стандартом, CSS 2.1 - это ещё не стандарт, он только в этом году может стать стандартом. Поэтому во всех наших разработках мы рассматриваем нужды разработчиков и пользователей и выбираем самые востребованные свойства. Это, впрочем, относится к чему угодно другому. Если окажется, что то, что хотят люди, нигде в стандарте не представлено, мы, наверное (теперь, когда мы любим стандарты), пошлём предложение в соответствующую организацию, чтобы это стало стандартом.
– То есть отставание в поддержке стандартов от других браузеров - намеренное?
– Я такого не говорил! То, что стало назваться стандартами, появилось, когда люди решили написать новые браузеры и не обременять себя с тем, что уже написано. То есть давайте сделаем революцию и те, кто написал для "Нетскейпа"
– Выходит, Microsoft всё же хочет присоединиться к тем, кто любит быстро добавлять новые функции?
– Ещё раз скажу, что мы делаем то, что людям нужно.
– То, что есть в IE9 Preview – это всё, что войдёт в релиз, или возможны ещё какие-то нововведения?
– Это не всё, будет ещё кое-что.
– Именно в области стандартов?
– Да.
– А когда новая версия выходит?
– Я ещё не могу объявлять дату.
– Ну, в этом году?
– Вы можете посмотреть на историю предыдущей версии, посмотреть сколько примерно проходит времени между первым выпуском и окончательным релизом [это заняло около года – прим. автора]. Если я вам скажу точную дату, и она не сбудется, вы будете показывать на меня пальцем!
– Насколько важна для браузера скорость? Приоритетна ли она по отношению к поддержке стандартов?
– Если бы мы сделали много новых свойств, но сделали бы их очень медленными, никому бы это не было нужно. Если бы мы сделали только очень-очень быстрый браузер, но без единого нового свойства, это, наверное, было бы полезно.
– Выходит, скорость в приоритете?
– Совершенно верно.
– Каким образом в новой версии достигается это ускорение? В частности, графики.
– Производительность - это довольно многомерная вещь. Есть много вещей, которые участвуют в процессе от обращения к проводу до того момента, когда пиксели загорятся на мониторе. И в этом процессе есть несколько вещей, которые мы переделываем очень серьёзно. У нас есть новый движок JavaScript, который работает намного быстрее, чем предыдущий. Он написан совсем с нуля с учётом того, как сейчас используется JavaScript. Мы учли и новые подходы к программированию и существование новых многоядерных процессоров. Есть новая графическая система, которая использует ресурсы видеокарты. Кто-то пробовал превью и обнаружил ускорение в сто раз между Chrome и IE9 на некоторых тестируемых вещах, связанных с большим количеством графики. Есть и другие серьёзные улучшения.
– Хотелось бы узнать технические подробности. Как именно достигнуто ускорение JavaScript?
– Не знаю, насколько технически глубоко рассказывать, я не читаю каждую строчку кода, но ключевая вещь, которую делает наш движок JavaScript - это компиляция. Важно также решение, когда нужно и когда не нужно компилировать. Бывает так, что если скрипт исполняет каждую строчку по разу, то компилировать будет бесполезно и медленно. Есть другая важная вещь – компиляция происходит в фоновом процессе, обычно на другом ядре. То линейное время, которое требовалось скрипту, раньше не только становится меньше, но исчезает.