Pull to refresh

О настоящем и будущем SVG

Reading time11 min
Views6.9K
Original author: Doug Schepers
image
Справка от переводчика: Доуг Шеперс (Doug Schepers [W3C]) — с 2007 года активный участник W3C в разработке SVG

Для того, чтобы узнать немного больше о текущем состоянии дел с реализациями SVG, я отправил открытый запрос реализаторам SVG с помощью email. Для первого из серии интервью, я связался с самым новым реализатором SVG, Патриком Денжлером (Patrick Dengler) из команды Internet Explorer. Он работает старшим руководителем проектов в группе ответственной за реализацию SVG в IE9.

Мы обменялись вопросами и ответами через email, как раз за неделю прошедшей встречи рабочей группы SVG (в W3C – прим. первод.). Я задал Патрику несколько вопросов, а он задал некоторые мне.


Doug: Мicrosoft не так давно анонсировал о том, что намерена поддерживать SVG в IE9. Какова причина такого решения?

Patrick: Мы потратили кучу времени на сбор информации со множества разных источников о текущих и будущих трендах в веб. Мы обязательно используем такую информацию для планирования каждого релиза. Мы определили, что следующим трендом в веб скорее всего станет область графики. Хотя мы стали участвовать в создании спецификации SVG, ранее мы уже поставляли в W3C и привнесли в веб VML (Vector Markup Language), но да, эта технология не получила то внимание, на которое мы надеялись. Вместе со стремлением сообщества разработчиков к новым и существующим возможностям графики, в том числе со включением SVG в спецификацию HTML5, SVG явился для нас правильным выбором в правильное время.

Patrick: Вы некоторое время работаете над SVG. Какие самые важные части своей будущей работы вы можете назвать?

Doug: Добавление новых функций в SVG, которые соответствуют нуждам пользователей и разработчиков и позволят сделать Веб более функциональной и полезной платформой. Когда я ранее разрабатывал множество разных веб-приложений, мне часто приходилось бороться с индивидуальными особенностями реализаций SVG, HTML, CSS и DOM, так что мне хочется упростить жизнь людям, которые используют эти технологии для решения стоящих перед ними задач.

Doug: Какие продукты Microsoft на сегодняшний день уже могут импортировать или экспортировать SVG?

Patrick: Поддержка SVG, как и многих других продуктов, была в упадке последние десять лет. На данный момент, Visio может экспортировать SVG и наши элементы управления .NET Grid Controls содержат возможность создавать на выходе SVG-представление, хотя они пока в стадии beta-версии. Кроме того, Bing так же как и другие наши сервисы Microsoft Live, а так же PowerPoint поддерживают SVG как формат. Некоторое время, для совместимости эти сервисы, как и другие ведущие сайты в сети, будут поддерживать VML для совместимости. Я рад, что подобные затраты для поддержки совместимости исчезнут с выходом Internet Explorer 9 (конкретно для этой версии браузера – прим. перев.).

Doug: Как вы рассматриваете SVG в плане вашей организационной стратегии?

Patrick: SVG – это ключевой элемент для команды Internet Explorer, так же как требования к реализации соответствующих спецификаций, включая улучшения в XHTML и DOM. Для того, чтобы вывести пользовательский опыт на следующий уровень, я знаю вы, Доуг, про это слышали, мы делаем дополнительные инвестиции в аппаратное ускорение графики и в новый компилируемый движок JavaScript, а так же в другие улучшения производительности касающиеся SVG (и наших других функций) для того, чтобы сделать технологию SVG – технологией мирового уровня.

Patrick: Как вы оцениваете влияние реализации SVG в Internet Explorer на веб-разработчиков, как это затронет их?

Doug: Учитывая большую долю Internet Explorer на рынке браузеров, я думаю люди, которые раньше избегали использования SVG, наконец-то увидят в этой технологии что-то что они смогут использовать с уверенностью в том, что это найдет широкое распространение. Когда IE9 будет выпущен, текущие и будущие версии каждого другого крупного браузера будут поддерживать SVG и это приведет к увеличению интереса к SVG. Мы уже наблюдаем это, на самом деле, уже есть множество проектов по конвертированию SVG во Flash или рисованию в веб с SVG. Я думаю, что анонс касающийся поддержки в IE9 сыграл в этом свою роль.

Doug: Что является самым интересным в реализации SVG в IE9? У каждого разработчика браузеров есть что-то особенное в SVG…в чем крут IE9?

Patrick: Несомненно, это наше аппаратное ускорение, высококачественная графика и графические вычисления. Microsoft революционизировал индустрию ПК-игр с DirectX и с удовольствием сотрудничает с производителями видео-карт для того, чтобы предложить оптимальный опыт для разработчиков и игроков. Команда Internet Explorer выбрала верное решение использовать этот успех, используя библиотеки Direct2D для всех графических функций (которые включают в себя так же HTML и текст). Это позволило нам устранить большое количество софтварного рендеринга графики и перенести эти вычисления на GPU. Это влияет на группы функций такие как: прозрачность, градиенты, геометрию, графические вычисления и даже видео высокого разрешения. Мы с удовольствием используем десятилетние инвестиции Microsoft, разработчиков и вендоров аппаратного обеспечения.

Doug: SVG 1.1 – это большая спецификация. Как и все другие вендоры браузеров, Microsoft разделяет внедрение поддержки на периоды разработки и не будет внедрять полную спецификацию в IE9. Какие функции вы не планируете поддерживать прямо сейчас и какие планы у вас на будущее?

Patrick: Мы рассказывали некоторым реализаторам и напрямую W3C об этом. Как вы упомянули, SVG – это большая спецификация (вдвое больше HTML 4.01), именно поэтому разработчики браузеров внедряют функции постепенно, от версии к версии. Так как мы хотим произвести мощный толчок для графики в веб, мы решили, что нам требуется реализовать подавляющую часть спецификации для переносимости с другими браузерами. В связи с этим мы реализуем 20 модулей SVG и существующих 23. Три модуля, которые мы не будем реализовывать в IE9 – это SVG Fonts, Filters и SMIL.

Если присмотреться к сценариям использования SVG Fonts, то на самом деле появляется очень много поводов задуматься о шрифтах в SVG, так как SVG – масштабируемая графика и это ключевой сценарий для просмотра текста. Взглянем на множество способов для шрифтов в веб, которые уже существуют (OpenType, TrueType, ClearType, WOFF) и учтем тот факт, что рабочая группа W3C Web Fonts движется к стандартизации Web Fonts, исходя из этого я не вижу будущего у SVG Fonts. Мы думаем, что ключевой особенностью SVG Fonts для создания отличных шрифтов для веб является то, что интеллектуальная собственность касающаяся шрифтов может быть защищена как для open source разработчиков так и коммерческих вендоров для того, чтобы они могли предложить отличные решения и устранить потребность в загрузке шрифта на десктоп. Мы будем следить спросом на SVG Fonts с помощью методик, про которые я уже упоминал, но на текущий момент я не думаю, что SVG Fonts получат широкое распространение.

Что касается Filters, это как раз та область, которую мы могли бы выбрать для того, чтобы продемонстрировать наши графическую возможности и перенести интенсивные вычисления прямо на GPU. Тем не менее, у нас есть сомнения по некоторым причинам. Первое, давайте не будем забывать, что Internet Explorer первым поддерживал фильтры еще с версии 4.0. И опять, мы не наблюдаем широкого их распространения. Тренды меняются и наши радары говорят нам об этом. Фильтры – это то место, где CSS получила большой интерес. Спецификация SVG предлагает 19 различных фильтров от Component Transfer до Convolve Matrix и Specular Lighting. Все это отличные фильтры, особенно, когда совмещены друг с другом и они действительно могут создавать интересные эффекты.Тем не менее, если взглянуть на спецификацию CSS Filters, то можно найти более удобные, дружелюбные к веб-разработчику фильтры, такие как отбрасывание теней и они уже получили признание. Я думаю нам необходимо перевести себя в состояние “подождать и посмотреть”. SVG на текущий момент зависит от спецификации CSS 2.1, не от CSS 3. Мы сформировали специальные комиссии в рабочих группах CSS и SVG для того, чтобы разрешить этот вопрос, но это займет некоторое время.

Последнее, но не маленькое – это SMIL, декларативная анимация. И снова, Microsoft участвовала в формировании SMIL десяток лет назад. И, в сотрудничестве с Compaq и Macromedia, выпустила HTML-версию SMIL (названную HTML + Time) и реализовала ее в Internet Explorer 4. И опять, мы не увидели широкого распространения этого функционала. Перекинуть мостик над пропастью между разработчиком и дизайнером всегда является трудным испытанием. Некоторые верят, в то что декларативная анимация поможет построить такой мостик и множество производителей инструментов делали такие попытки, немногие с некоторым успехом. Из общения с разработчиками мы знаем, что большая часть создает анимации через код, для веб это означает JavaScript. И этот путь поддержан от всего сердца в Internet Explorer 9, даже сейчас в версиях Platform Preview. Анимация легкодоступна и мы предлагаем разработчикам путь к ней по минимальному сопротивлению через код (с использованием JavaScript – прим. перев.). Добавлю, что CSS3 так же исследует анимации через CSS Transitions и CSS Animations. Вы начинаете видеть тренд в этом? И снова, специальная комиссия из групп SVG и CSS исследует как из моделей правильная. Спецификации SMIL уже десятилетие. Мы поддерживали SMIL для HTML все десять лет и наблюдали крайне маленькое ее использование. Мы думаем, что анимации – это важная часть HTML5, мы знаем, что сообщество исторически использует код (JavaScript) и начинает принимать более простую с виду модель CSS. Время покажет.

Patrick: Это был общий ответ. Вы согласны с тем, что нам нужно обратить свое внимание на эти вещи? Как?

Doug: Я понимаю, что командам разработчиков приходится принимать тяжелые решения о том, что реализовывать обладая ограниченным временем и ресурсами. И команда IE принимает такие же решения, как и другие в первом круге реализаций. Другие браузеры не имели фильтры или SMIL-анимации на начальной стадии, но по мере того, как их реализации взрослели они воплотили эти функции, я думаю Firefox выпустит SMIL в своей следующей версии.

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

Дело с SVG Fonts немного более хитрое, ребята из Firefox имеют свои предпочтения против поддержки SVG Fonts, с другой стороны Opera и WebKit поддерживают часть из SVG 1.2 Tiny (и это единственный WebFont-формат доступный на iPhone). Я люблю SVG Fonts, хотя и понимаю, что на сегодня существует новое поколение технологий вебшрифтов доступных в браузерах, которые перекрывают возможности SVG Fonts. С доступностью для дизайнеров шрифтов WOFF нужды в SVG Fonts будет гораздо меньше. Но существует несколько интересных вариантов использования SVG Fonts и я думаю нам стоит внимательно рассмотреть то, что мы будем делать с технологией в будущем. Планы SVG 2.0 не предполагают включения SVG Fonts в спецификацию, вместо этого они будут выделены в отдельный модуль. Таким образом, производители браузеров смогут основывать свои решения на требованиях пользователей к данной функции.

Другое дело фильтры, я думаю, очевидно, что IE должен поддерживать их в будущих версиях, особенно в виду того, что у вас есть аппаратное ускорение. Как вы знаете комиссия FX Task Force, сформированная нами вместе с рабочей группой CSS разрабатывает спецификацию Filters module, которая позволит использовать SVG-фильтры с HTML-контентом. Firefox и Opera уже реализовали прототипы этого, и я уже наблюдаю множество интересного контента в веб, который использует эти возможности для игр, для визуализации данных, для видео. CSS будет поддерживать некоторые привлекательные эффекты, вроде теней, которые вы упомянули, но для более продвинутой комбинации эффектов разработчики должны будут использовать SVG-фильтры для контента. И привлекательные эффекты CSS будут лишь синтаксическим сахаром построенным над полным функционалом фильтров.

У меня двоякое отношение к SMIL-анимации: я люблю ее из-за того, что я могу с ней сделать и я ненавижу из-за того, что сделать не получается. Декларативная анимация в CSS очень интересна мне и это еще одна область над которой мы работает в комиссии FX Task Force. Нам требуется единая базовая модель для анимации SVG-элементов и анимации основанной на классах CSS и они обе нуждаются в изощренной модели таймингов (которая в SVG наследуется от SMIL) и конечном автомате (которого сейчас нет ни в одной из них). И обе они нуждаются в лучшей интеграции с JavaScript и возможности повторного использования для различных элементов (что CSS позволяет делать, а SMIL — нет). Я предвижу, что мы прекратим упрощение SVG-анимации, которую мы унаследовали изначально от SMIL, но будем улучшать ее в областях, которые позволят сделать ее более мощной для разработчиков и дизайнеров.

Это мое видение вещей, хотя это дело рабочих групп SVG и CSS разрабатывать то, что в конце концов будет применяться в браузерах. Все вендоры браузеров и публика должны выразить свою точку зрения на то, что им надо от SVG.

Doug: Что было самым затруднительным в реализации SVG?

Patrick: Я думаю большинство реализаторов согласятся, что это – SVGDOM. Есть некоторые странности, которые непонятны нам и рабочей группе W3C SVG, например, возможность доступа к любому свойству с использованием .baseVal. По правилам W3C, рабочей группе SVG не разрешено менять спецификацию. Тем не менее, я думаю, что группа согласится с теми высокоприоритетными областями SVG 2.0 и даже с некоторыми идеями которые витают вокруг нас и размещены ранее вами. Между прочим, это другая причина пересмотреть реализацию SMIL в том виде, в котором она написана сегодня. Каждый тип (исключая некоторые) является анимированным типом и требует синтаксис для .baseVal/animVal, которые, как мы считаем, переворачивают дизайн вверх ногами. Я убежден, рабочая группа пересмотрит этот дизайн.

Doug: Да, я надеюсь, мы сможем решить эту проблему с SVG 2.0. Предложенный сегодня путь не лучший для реализаторов стандарта и для разработчиков.

Doug: Есть еще что-нибудь в SVG, что вам хотелось бы поменять?

Patrick: Я думаю, я уже описал большую часть спорных вопросов, на которые мы наткнулись в ходе стадии нашего планирования, это и фильтры, шрифты, SMIL к которым мы пока приглядываемся и SVGDOM и типы данных, которые уже реализуем. Я был бы рад увидеть SVG более упрощенным, более сфокусированным на векторной графике, отделении стилей (CSS) от чистой геометрии. Я был бы рад увидеть как доступность становится большей частью спецификации. Я думаю, пришло время уменьшить размер SVG DOM, имея в виду то, что 90% сценариев используют интерфейсы против более общих моделей get/setAttribute, которые используются веб-разработчиками для менее распространенных сценариев. В основном, я хотел бы увидеть грамотное разделение стилей, анимации и векторной графики, так чтобы мы смогли получить единую модель стилей и анимации через то, что я считаю базовой графикой для HTML5: SVG + CSS + HTML.

Patrick: С вашей точки зрения, что бы вы изменили?

Doug: Я уже упоминал некоторые изменения в декларативной анимации и DOM. Мне бы хотелось упростить повторное использование SVG-элементов, что было причиной моей спецификации SVG Parameters. Я хотел бы добавить некоторые возможности для определения высокоуровневых коннекторов между элементами, поскольку графы – это общее и частоиспользуемое применение для SVG… вещи типа схем, диаграм, схематичных потоков, деревьев, карт метро и так далее. И я так же хочу большее количество графических эффектов, вроде рассеянных кривых (diffusion curves). И мне хотелось бы упростить архитектуру вокруг вещей типа <use>, <symbol>, <clipPath> и подобных. Общее требование для более продвинутых возможностей разметки и я надеюсь мы сможем реализовать его в SVG 2.0 с путями в виде фигур (shape-paths) и относительным позиционированием без того, чтобы сделать SVG слишком сложным. Наконец, я хотел бы увидеть общий с Canvas графический API для того, чтобы разработчики могли изучить только его. И как многие люди, я хотел бы видеть прозрачную совместимость с HTML: ссылки на SVG-файлы из HTML, встроенный SVG-код в HTML, встроенный HTML-код в SVG.

Doug: Рабочая группа SVG начала создавать ранние черновики SVG 2.0. Что бы вы хотели увидеть в SVG 2.0?

Patrick: Как вы знаете, я поднял эту тему на прошедшей телеконференции. Я думаю, что сейчас есть искренне позитивное желание двигаться вперед к следующей версии. Текущей спецификации уже более десяти лет, и реализаторы многому научились за это время. Хотя векторная графика фундаментальна по своей природе, всегда есть возможности сделать вещи лучше. Microsoft возглавляет следующую встречу в конце мая в Бельгии. Я буду на ней и буду продолжать подталкивать рабочую группу к тому, чтобы обернуться и взглянуть на значение SVG как части HTML в повседневной жизни разработчика. Вместо того, чтобы углубляться в новые функции и функциональность, нужно решить как мы могли бы упразднить некоторые болезненные точки, с которыми все мы сталкивались по время реализации спецификации. Но более важное, упразднить побочные эффекты этих болезненных точек, которые стоят на пути веб-разработчиков. Так как сценарии статических SVG-документов существуют давно, они уже хорошо реализованы. Нам необходимо вернуться на уровень сценариев и пересмотреть цели SVG, заняться основными разработками с момента их воплощения и выдать лучшую модель для HTML5 и SVG для существования в гармонии в веб и разработанную для веб-разработчиков.

Patrick: Вы опубликовали множество отличных черновиков, например касающихся уменьшения DOM и поддержки <param>. Вы согласны, что мы, как рабочая группа нуждаемся в том, чтобы оглянуться назад и подумать сначала об уровне сценариев?

Doug: Да, я думаю в SVG 1.1 множество классных вещей, но и множество вещей, которые мне хотелось бы изменить, вещей которые мы SVG-разработчики изучили за десятилетие разработки. Я думаю, что SVG 2.0 – это отличная возможность для нас исправить ошибки перед тем, как SVG действительно получит распространение и нам уже будет трудно что-то изменить. И наши решения должны быть продиктованы нуждами SVG-разработчиков и сообщества дизайнеров.

Patrick: Я думаю, что у SVG светлое будущее, вы согласны?

Doug: Меня бы здесь не было бы, если бы я не был согласен! Это займет время, но SVG в конце концов найдет свое признание.

Patrick: Хорошо, было здорово познакомится с вами на MIX и увидимся в Брюсселе.
Tags:
Hubs:
+21
Comments34

Articles