- Вот это как раз недавно изменилось. Когда мы делали 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 последует?

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

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

Отметить Добавить цитату