Статьи

IE и стандарты: Крис Уилсон Talks

В этом году в Web Directions South у меня была возможность поговорить с Крисом Уилсоном, который не нуждается в представлении. Он является архитектором платформы для Internet Explorer в Microsoft. Вы можете прослушать это интервью, если хотите.

SP: Привет, Крис.

Крис Уилсон: Привет.

SP: Я слышал пару ваших выступлений в прошлом году, и общая тема, которую я слышу, это то, что вы пытаетесь поставить разработчиков на место ваших парней из Microsoft, и реалий, которые вы должны разобраться с разработкой Internet Explorer.

Крис Уилсон: Ммм-хм.

SP: Почему вы думаете, среди разработчиков и дизайнеров, в частности, в настоящее время Microsoft имеет такую ​​плохую репутацию?

Крис Уилсон: Ну, я думаю, что многие дизайнеры и разработчики смотрели на платформу, которую мы имеем сегодня, и на некоторые проблемы, которые не были исправлены в течение ряда лет, и были очень разочарованы, потому что они работать над этими проблемами и тратить много времени на решение этих проблем в некоторых случаях. И я думаю, что единственное, чему я верю сейчас, на самом деле, в течение последних шести месяцев или около того, мы действительно получили очень положительный отклик от выпуска IE7, именно от такого рода избирателей. Знаете, я все время общаюсь с людьми, которые … я действительно приятно удивлен, когда они говорят, вы знаете: «Я очень расстроился из-за работы с IE6, и я люблю IE7». Вы знаете: «Это не все, что я мог когда-либо просить, но это действительно все, что мне было нужно, и все, что делает его таким, что мне намного легче выполнять свою работу».

SP: О, конечно.

Крис Уилсон: И это именно то, для чего мы снимали.

SP: Ни одна версия браузера — и, в частности, ни одна версия браузера — не собиралась дать вам все, что вы абсолютно хотели, но, конечно, да, я хочу сказать «спасибо» за внимание, особенно при принятии и поддержке стандарты в IE7. Это абсолютно необходимо сделать.

В конце своего выступления вы упомянули, что в Web 2.0 менялись некоторые предположения, которые необходимо было сделать. Можете ли вы поделиться какой-либо информацией о том, что именно это означает для следующей версии IE?

Крис Уилсон: Дело не в том, что мы меняем конкретные особенности, которые мы делаем. Это больше сценариев, которые нам нужно оптимизировать, и вы знаете, какие API и функции мы предлагаем, какова производительность этих функций и тому подобное. То, как люди программируют для Интернета, что они создают веб-презентации, отличается от того, что было пять лет назад — конечно, десять лет назад, но даже пять лет назад. Это просто другое. У вас не было, вы знаете, сильно интерактивных приложений JavaScript, которые были очень распространены. Там, конечно, были некоторые из них, но они не были, вы знаете, главной страницей почти каждого сайта, на который вы заходите, и я думаю, что через пару лет это будет.

С.П .: Да. Итак, вам потребовалось время, чтобы сказать: «Да, мы работаем над следующей версией Internet Explorer». Сразу после того, как Microsoft объявила о том, что они работают над Internet Explorer 7, мы начали видеть… Вы знаете, у нас был запуск блога IE. Мы начали видеть не детальные дорожные карты, а некоторые начальные вещи о том, что «это вершина нашего списка того, что мы собираемся решать. И даже то, о чем мы не можем вам рассказать, это наши рассуждения о том, что мы Принимаете. « И мы действительно не видели этого в IE8. Это слишком рано?

Крис Уилсон: Хорошо, одна из вещей, с которой мы сталкиваемся в Microsoft, — это предварительное объявление — например, объявление до того, как мы действительно, по-настоящему уверены, что сможем отправить что-то с действительно высоким качеством, когда мы скажем, что отправим это. И потому что мы такая большая компания, потому что мы отправляем так много людей — и это не так — когда я говорю, что на самом деле не имею в виду «потому что мы отправляем так много конечных пользователей», что мы делаем, но мы отправляем так много корпораций и так много других предприятий. На самом деле, вы знаете, мы задали темп для многих других предприятий. Когда мы выпускаем новую версию Internet Explorer, целому ряду компаний приходится тестировать свои программы на IE, они должны выяснить, какой контент должен генерировать их инструмент, и тому подобное. И поскольку мы делаем это, потому что есть так много людей, которые полагаются на нас, мы должны быть очень, очень осторожны, чтобы быть на 100% уверенными, когда мы объявляем такие вещи, как «это именно то, что мы делаем» или «это дата к чему мы стремимся. Конечно, когда мы этого не делаем, многие люди расстраиваются из-за нас, но не только они расстраиваются из-за нас; на самом деле, это может нанести ущерб их бизнес-модели, если они сделают ставку на то, чтобы мы выпустили что-то в определенный период времени, или сделали ставку на то, чтобы мы выпустили данную функцию, а мы ее не отправляем.

SP: Вы упомянули, что вы — или ваша команда создает совершенно новый движок рендеринга для следующей версии IE, и я уверен, что многие люди зададутся вопросом, знаете, есть Gecko, есть WebKit, и они Вы с открытым исходным кодом, и они великолепны! Есть ли смысл в том, чтобы Microsoft создала новый движок рендеринга с нуля прямо сейчас? Это просто вопрос лицензирования?

Крис Уилсон: Абсолютно нет, по нескольким причинам. Во-первых, мы на самом деле не создаем совершенно новый движок, как целый — в IE наш компонент давным-давно имел кодовое название Trident. Это своего рода механизм рендеринга, объектная модель и синтаксический анализатор — все эти части объединены. То, на чем мы на самом деле сейчас сосредоточены, — это, в частности, часть механизма компоновки, часть, которая выясняет, как разместить текст, контент, знаете, границы и т. Д. На экране, и иметь возможность управлять потоком текста в Общая. Это та область, в которой есть много деталей в спецификации CSS 2.1, и, вы знаете, мы начали ту, которая у нас была довольно давно, и мы понимаем, что мы могли бы продолжать исправлять это, мы могли бы продолжать делать что-то с этим и добавление дополнительных функций, потому что у нас действительно есть ряд функций, которые мы никогда полностью не использовали из того, что мы действительно могли из них извлечь. Например, в IE5.5 мы ввели эту шаблонную технологию для разбивки на страницы для печати, и у нас есть идеи использовать это в экранных сценариях, но мы никогда не удосужились об этом. Таким образом, мы могли бы сделать это, но мы действительно осмотрели компанию и поняли: «Ух ты, мы — Microsoft. Здесь много людей с опытом верстки. Есть много людей, которые действительно знают, как сделать верный макет. « И поскольку мы много лет не занимались серьезной переработкой этого кода, вау, нам нужно было расцепить этих людей и, вы знаете, действительно позволить им делать действительно невероятные вещи. Я думаю, что вы, вероятно, увидите, когда мы выпустим, почему мы это сделали. Есть много преимуществ, которые мы действительно можем настроить, чтобы делать некоторые удивительные вещи в будущем. И это не значит, что первый релиз будет делать все это, конечно же, как и все остальное. Но это позволяет нам делать действительно большие вещи в будущем.

Что касается создания на основе WebKit, Gecko или любого другого движка, то я уверен, что отчасти я думаю, что нам придется преодолеть некоторые проблемы с лицензированием. Но главная причина для меня заключается в том, что когда мы отправляем код, мы несем реальную ответственность, особенно полмиллиарду человек, и мы бы взяли на себя эту ответственность за набор кода, который нам не принадлежит, мы не пришли с этим мы не эксперты, и там много кода. Но нас обвиняют, если что-то пойдет не так; Более того, мы несем ответственность за это, если что-то пойдет не так. Итак, вы знаете, если есть уязвимость, мы должны исправить ее, мы должны немедленно доставить исправление, или это … мы готовы к этому. И это делает его немного сложным. И когда я смотрю на другие наборы инструментов, я думаю, что на объем работы, которую они вложили в выполнение некоторых стандартов работы или, вы знаете, принимая на себя кучу различных стандартов, которые мы еще не достигли Я думаю, они сделали несколько замечательных вещей; Я не думаю, что это так здорово, что единственный ответ на самом деле должен быть: «Давай возьмем этот двигатель». Одна из вещей, которую я знаю, которую я действительно хотел бы видеть со стороны стандартизации моей работы, вы знаете, от моего сопредседателя рабочей группы по HTML, и своего рода координация нашего другого участия в разработке стандартов — одна из вещей, которая Я также хотел бы отметить, что на самом деле, чем больше у вас реализаций, которые работают по-другому, тем лучше вы делаете свои стандарты. Потому что, в противном случае, вы в конечном итоге просто полагаетесь на одну реализацию, чтобы определить, что такое стандарт, и таким образом, что-то подобное происходило с IE некоторое время. До этого все происходило так, что Netscape определял, каким был стандарт. Я имею в виду, мы должны были быть совместимы с Netscape, потому что это то, для чего люди писали свой контент. Поэтому я думаю, что иметь несколько реализаций — это действительно хорошо; вот почему W3C требует этого.

SP: Вы упомянули свои пятьсот миллионов пользователей, и в последнее время вы много говорили о том, что именно это является движущей силой стремления Microsoft поддерживать обратную совместимость. Сколько из этого необходимо для обеспечения обратной совместимости, особенно в Internet Explorer, происходит в результате этой давней вещи, когда в систему можно установить только одну версию Internet Explorer одновременно?

Крис Уилсон: Удивительно, но очень мало, потому что проблема для нас на самом деле не в том, что мы можем позволить только один способ делать вещи. Хотя на самом деле делать совершенно разные версии IE очень сложно, нам довольно легко войти и ввести отдельные пути кода для, как вы знаете, старого способа работы и быть совместимым. Проблема в том, чтобы знать, когда включить это, зная, какой путь использовать для любой части контента. Это действительно ключ к нашей проблеме совместимости, и, знаете, когда я скажу, что в будущем нам придется просить авторов согласиться на поведение, соответствующее стандартам, это в основном так — когда мы получаем веб-страницу из Сеть, и мы начинаем ее анализ и пытаемся ее отобразить, мы не знаем, насколько этот код соответствует стандартам. Мы действительно не Невозможно сказать, насколько этот код соответствует стандартам. А это значит, что мы на самом деле не знаем, какой набор поведения мы должны соблюдать. Поэтому я думаю, что, если вы ожидаете, что пользователь сделает это, пользователь не знает, верно? Когда я захожу на веб-страницу, я не хочу говорить: «О, это выглядит неправильно, возможно, мне стоит попробовать старый движок рендеринга». Я также не хочу заставлять людей переключаться между разными браузерами. Конечно, если мы позволили нескольким версиям IE работать бок о бок в одной и той же системе, у вас все еще есть проблема, ну, вы нажимаете на одну ссылку, и ее нужно открыть в одном движке, и вы нажимаете на другая ссылка, и она должна быть открыта в другом движке. Это было бы настоящим испытанием. Пользовательская модель была бы довольно смущена.

С.П .: Да. И все же, по крайней мере до сих пор, конкурирующие браузеры, такие как Firefox и Opera и тому подобные вещи, действительно пошли на «пользователь сам решает, какой механизм рендеринга он хочет использовать», даже если он просто выбирает, когда обновлять до последней версии. версия.

Крис Уилсон: Ну, пользователь сам выбирает, какой браузер иметь.

С.П .: Да.

Крис Уилсон: И вы можете использовать некоторые другие браузеры, хотя иногда это также вызывает некоторые проблемы. Но я думаю, вы найдете, что это хорошая вещь для веб-разработчиков. Веб-разработчикам нужна такая возможность запуска нескольких версий на одном компьютере. Вот почему мы действительно пошли по этому пути, ну, в общем, «Какой лучший способ сделать это для нас?» Лучший способ — например, даже если мы решили проблему в IE сегодня, это не решает проблему для предыдущих версий IE. На самом деле мы не можем вернуться и изменить код, чтобы он работал бок о бок, потому что, если бы мы это сделали, это больше не было бы IE6, это была бы какая-то искаженная версия IE6. Но это означает, что мы могли бы решить это только в будущем. Мы не хотим просто решить это на будущее. Лучшее, что мы могли сделать, — это предоставить технологии виртуализации, чтобы сделать это, поэтому мы пошли по этому пути: «Эй, давайте разберемся, как предоставить бесплатную виртуальную машину с Windows XP и бесплатную виртуальную машину, которая, вы знаете, имеет IE6, и один вы можете обновить до IE7. «

С.П .: Который был огромен, и я думаю, что это много, почему общая критика «Почему я не могу установить более одной версии IE?» действительно ушел, потому что это была критика со стороны сообщества разработчиков.

Крис Уилсон: Во многом, да. Но проблема здесь в том, что, вы знаете, когда вы думаете о нормальных конечных пользователях, они на самом деле не хотят думать даже о запуске нескольких разных браузеров, не говоря уже о нескольких разных версиях браузера. Они просто хотят, чтобы Интернет работал, верно? Они хотят, чтобы все эти браузеры были совместимы, и чтобы все это работало.

SP: Тем не менее, заманчивая вещь, которую предотвращает эта модель участия разработчика, состоит в том, что, если бы мы могли отобразить весь этот старый веб-контент на новом движке рендеринга? Какие возможности это откроет? Тот факт, что сайт больше не разрабатывается активно, не означает, что расширение браузера, использующее функции нового механизма рендеринга, не может заставить этот старый сайт петь по-новому. И это было бы здорово!

Крис Уилсон: Но вы предлагаете, чтобы расширение браузера могло взять этот старый контент и заставить его рендериться через новый движок?

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

Крис Уилсон: Хорошо, но вы уже можете это сделать, если хотите. Вы, конечно, могли бы написать плагин, который заставил бы все быть в «режиме стандартов» — независимо от уровня режима стандартов, который существует в то время. Я думаю, что проблема действительно будет, это не то, как веб-разработчики пишут контент. Мол, то, что они делают, они пишут контент — и давайте на мгновение предположим, что они действительно пишут это в соответствии со стандартом. Они начинают со, вы знаете, всех соответствующих стандартов, напечатанных на столе перед ними, и они пишут свое содержание таким образом, а затем им нужно, чтобы оно работало. И то, что они делают, чтобы это работало, часто является самым разрушительным для нас. Вы знаете, они применяют хаки, которые вызывают проблемы в IE7, но были необходимы для правильной визуализации IE6. И я думаю, что вы, вероятно, найдете это и для других браузеров. И иногда это потому, что у них есть ошибки или отсутствующие функции или что-то еще; иногда в спецификации есть двусмысленность, и они делают это одним способом, а другие браузеры делают это другим способом, и вы знаете, веб-разработчик должен иметь дело с этим. Они должны заставить его работать одинаково во всех браузерах, и в этом суть — как, если бы вы могли получить контент, который полностью соответствовал стандартам, а затем просто попытаться исправить его оттуда, это было бы здорово. Проблема в том, что никто не пишет контент таким образом, отчасти потому, что а) для них нет никакого смысла — они не пишут набор тестов стандартов, они пишут веб-страницу — и б) у них нет ничего, с чем можно было бы это протестировать. чтобы убедиться, что они действительно сделали все правильно в соответствии со стандартами, и это будет выглядеть так.

SP: Одна вещь, которая действительно выделялась для меня в вашем выступлении, заключалась в том, что в идеальном мире со временем сложность адаптации сайта, соответствующего стандартам, для работы в новом браузере должна со временем стремиться к нулю.

Крис Уилсон: Да.

SP: Теперь, с этой моделью выбора разработчика, Internet Explorer и, если она войдет в спецификацию HTML, все браузеры в конечном итоге примут, браузеры со временем будут иметь, вы знаете, пять, шесть, семь, десять, восемнадцать различные режимы рендеринга для каждой версии спецификации, выпущенной с течением времени, или эта тенденция различий стремиться к нулю с течением времени будет означать, что однажды это может исчезнуть?

Крис Уилсон: Я думаю, что моя личная надежда, безусловно, заключается в том, что однажды это уйдет, что различия между версиями браузера не являются тем, что мы называем внутренне «разрушающими изменениями». Это не те вещи, которые действительно могут сломать того, кто им написан, а вы только добавляете что-то после этого. Я не уверен, что мы действительно доберемся до этого, потому что я смотрю на все стандарты, которые существуют сегодня на CSS 2.1 и HTML 4.01, и, вы знаете, что мы делаем с HTML 5, и все другие соответствующие веб-стандарты, и каждый из этих стандартов исправляет вещи в предыдущей версии. Это устраняет неясности, это исправляет проблемы. Я надеюсь, что спецификации, которые мы пишем сегодня — я знаю, что спецификации, которые мы пишем сегодня, гораздо более декларативны в отношении того, что должно произойти. Они намного понятнее, они не оставляют так много для воображения разработчика. И в то же время я знаю, что там есть вещи, которые не заявлены, и, надеюсь, мы сможем исправить большинство из этих пробелов до того, как начнем поставлять стандарты, но в какой-то момент, вы знаете, мы Мы собираемся предложить реализацию, которая, по нашему мнению, является правильной в соответствии со стандартом, а затем другие люди придут к реализации, думая, что они соответствуют стандарту, и это так, потому что стандарт не делает это решение. И это было то, с чем у нас действительно было огромное количество проблем в IE, потому что мы написали нашу первую реализацию CSS до того, как появилась рекомендация CSS 1. И мы написали наш второй, вы знаете, вскоре после этого, я думаю, или, возможно, даже раньше — CSS 1 потребовалось некоторое время, чтобы получить штамп. Но, вы знаете, у нас не было всего того, что делал CSS 2. Мы не указали их, поэтому у тех из нас, кто был в рабочей группе CSS в то время, были разные картинки о том, как большая картинка совмещается, и как эти функции CSS 1 должны были взаимодействовать. Итак, вы знаете, способ, которым мы интегрируем это в код, был немного другим.

SP: Вы являетесь сопредседателем рабочей группы W5 по HTML 5.

Крис Уилсон: Да.

SP: Сколько электронной почты вы получаете из этого списка?

Крис Уилсон: Ну, я имею в виду, что любой может присоединиться, это отличная вещь, так что вы можете узнать сами!

SP: я присоединился к этому списку …

Крис Уилсон: Честно говоря, это много, и, конечно, у меня есть кое-что. Моя рабочая электронная почта, вероятно, даже больше, чем это. Но, безусловно, эта рабочая группа, я думаю, одна, вероятно, генерирует в среднем пятьдесят сообщений в день или около того.

SP: И вы сказали, что, по крайней мере, одной из главных причин, по которой вы хотели взять на себя эту роль, было то, что вы верите в открытые стандарты.

Крис Уилсон: Ммм-хм.

С.П .: Ваш опыт в качестве сопредседателя проверял это убеждение или укреплял его?

Крис Уилсон: Конечно, это не поколебало мою веру в то, что это должно произойти, что нам нужно открыто разрабатывать стандарты, которые можно свободно применять. Я все еще думаю, что это абсолютно важно, и именно поэтому я все еще там. Конечно, есть некоторые проблемы. Эта группа действительно для W3C, своего рода эксперимент по открытости, и у нас есть некоторые проблемы с этим. Вы знаете, есть много разных мнений, и трудно понять, что, в конце концов, следует считать консенсусом. Что, в конце концов, следует считать справедливым? Что, конечно, является большой проблемой для меня как одного из председателей рабочих групп. Мы должны решить это.

SP: Я уверен, что другие рабочие группы, такие как рабочая группа CSS, в свое свободное время смотрят с интересом.

Крис Уилсон: Я абсолютно так думаю, да.

С.П .: Отлично. Что ж, спасибо большое, Крис, что поболтали с нами …

Крис Уилсон: Спасибо!

SP:… и увидимся.

Крис Уилсон: Сея!

Выступление Криса Уилсона из Web Directions South «Продвижение веб-сайта вперед» будет доступно для загрузки в виде подкаста с веб- сайта http://webdirections.org .