Как работает W3C, и что там делает Яндекс? Интервью с Чарльзом МакКэтиНевилом

в 8:38, , рубрики: IT-стандарты, semantic web, standards, w3c, YaC, yac2012, Блог компании Яндекс, Веб-разработка, стандарты, яндекс, метки: , , , , , ,

В конце августа Яндекс вступил в World Wide Web Consortium. Тогда, в том числе в посте на Хабре, нам задали много вопросов о том, зачем нам W3C, и что мы там собираемся делать.

Нашим представителем в W3C стал Чарльз МакКэтиНевил, и я воспользовался его приездом на YaC 2012, чтобы задать часть этих вопросы вживую.

Чарльз занимается стандартами Веба в W3C почти 14 лет. Раньше он был директором по веб-стандартам в Opera Software, а с июля 2012 года работает в Яндексе, учит русский язык и даже ведёт по-русски свой русскоязычный твиттер.

Кстати — если у вас есть вопросы к Чарльзу, которые мы ещё не задали, — смело задавайте их в комментариях. Обещаю получить у него ответы на стоящие и добавить их в интервью и/или ответить в комментариях же.

Привет, Чарльз. Расскажи для начала, что такое W3C? Зачем мы вступили в консорциум и почему это важно Яндексу?
W3C — организация, которая разрабатывает основные стандарты Веба. Например, HTML, CSS, SVG, многие виды API. Большая часть того, что работает в браузерах или на сайтах, определяется консорциумом. Вступать в него могут и отдельные люди, и организации. В основном, участники и определяют работу W3C. Яндекс — лидер в России. Но он уже и глобально является значимым игроком в интернете, поэтому должен — и будет — влиять на то, как разрабатываются стандарты Веба. Ведь в процессе создания новых сервисов мы находим и новые пути того, как их делать. Что-то из этого — новое только в рамках Яндекса, но есть вещи, которые должны определять и то, каким будет Веб. Нам важно показать их другим, важно, чтобы они стали стандартом в интернете. Это то, чем давно занимаются другие компании. И они могут прийти и предложить свои разработки, которые нам придётся использовать. Поэтому мы хотим сами создавать технологии, которые нам нужны и важны.

И что самое важное мы должны делать в таком случае?
Что самое важное? Всё самое важное. Я глава рабочей группы Web Applications, которая разрабатывает много стандартов API. Например, XMLHTTPRequest. Он сам существует уже несколько лет, но никакого стандарта для него не было. Как и хорошей спецификации, которую бы все понимали и реализовывали одинаково. Мы такую почти написали. Простые штуки: ElementTraversal и QuerySelector. Это примеры небольших спецификаций, которые делают веб-разработку проще. Дальше — другие типы подобных вещей и API. Это то, что важно нам. HTML. HTML5. HTML 5.1 — именно так назовут следующую версию — важная задача для W3C сейчас. И для нас имеет значение, что попадёт в неё, а что — нет. Конечно, мы можем как участвовать в каких-то конкретных обсуждениях, так и нет. Но любом случае у нас есть возмоность посмотреть на то, над чем люди работают и сказать: «Круто, продолжайте». Нет проблем. Но на что-то другое, мы можем сказать: «Нет-нет!» Бывает так, что важно, чтобы что-то делалось каким-то одним способом, но никак не другим. Это может относиться и к развитию CSS или SVG.

Как вообще работает W3C? Как там всё происходит?
Участник W3C говорит: мы хотим кое-что сделать. Конкретный пример — геолокация. Кто-то сказал: мы бы хотели, чтобы на Вебе работала геолокация. В этом, например, была заинтересована пара браузеров и пара телекоммуникационных компаний. Были люди, которые уже занимались этим вопросом, так что уже существовали конкретные идеи. Они создали рабочую группу — фактически почтовый список рассылки. Определили главу группы, который будет координировать её работу. После этих процедур участники W3C, которые заинтересованы в технологии, начинают спорить о том, как она должна быть устроена. Пишут спецификацию, выкладываю публично её проект. Все говорят: о нет, так делать нельзя, нужно всё поменять! И дальше всё перетряхивается и меняется. Когда рабочая группа решает, что всё готово, она показывает результаты всем на свете. Большая часть работы консорциума и так публична. Но в W3C в процессе работы над спецификацией есть стадия, на которой явно говорят: сейчас последний момент, когда мы принимаем комментарии от публики. А ответы буду даны на каждый вопрос. Это довольно большая работа. И большая ответственность.

Долгий ли это процесс? Бывает по-разному. Если работу по подготовке спецификации сделали хорошо, всё пройдёт очень быстро. В таких случаях не бывает комментариев и возражений. Если же спецификация очень спорная или очень значимая, — например, как HTML5, — это может занять и несколько лет. После этого вы должны доказать, что можете сделать рабочую реализацию своей спецификации. В идеале кто-то должен был реализовывать её ещё в тот момент, когда она писалась.На самом деле, на этой стадии некоторые спецификации уже практически реализованы в пяти разных браузерах. Ещё до того как они их сами попробуют и протестируют. Бывает, что к спецификациям не готовы подходящие реализации, и в этом случае нужно действительно доказывать, что они работают. После этого всё завершается. Можно объявлять себя победителем и устраивать праздник. А после начинать работу над версией X.1 или X+1.

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

В теории структура W3C очень-очень демократична. На самом деле, она такая и на практике. В теории все решения принимает директор W3C Тим Бернерс-Ли. Во всём надо убеждать его. Расскажу, как на практике. Рабочая группа собирает встречу с её председателем и всеми остальными. Они достают все свои документы, приносят письма из рассылки. И говорят: вот все комментарии, которые мы получили. Мы ответили на все. Обычно W3C работает до достижения консенсуса — все должны быть счастливы. Если кто-то возражает — даже один человек — и настаивает на своём, этого достаточно, чтобы Тим изучил это возражение и сказал: «Этот чувак говорит ерунду и все в рабочей группе — 17 разработческих компаний, 22 производителя контента и ещё три человека — считают так же и уже реализовали это всё иначе». Или он скажет: «Знаете, а он говорит осмысленные вещи, и мы действительно можем сделать это и так, как он предлагает». Как пример, возражения по поводу доступности для людей с ограниченными возможностями. Допустим, вам нужно выбрать между решениями А и Б, а одно из них усложнит создание версий для этой категории людей. В таком случае Тим может сказать: «Технически можно делать обоими способами, но делать на Вебе что-то так, что не позволит большой части людей этим пользоваться из-за ограниченных возможностей или из-за недостаточной универсальности, будет глупо». Подобные возражения он считает серьёзными и в таких случаях говорит рабочей группе устранить проблему.

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

А кто вообще состоит в W3C?
Есть три типа участников. Участники-стартапы — таких из России нет вообще. Это новый тип, так что стартапов и со всего мира пока мало. Есть ассоциированные участники. Обычно ими становятся небольшие компании, исследовательские и некоммерческие организации, университеты. И полноценные участники, среди которых большие компании вроде Яндекса. На самом деле, отличие только в том, сколько вы платите за членство. Чем компания больше, тем больше ей нужно платить. Мы — единственный полноценный участник из России. И то стали им совсем недавно. Всего у W3C более 400 участников со всего мира. Большинство из них, пожалуй, технологические компании. Хотя есть и заметное число университетов и исследовательских групп. Также там много небольших компаний.

И для чего они вступают в W3C?
Участниками W3C становятся те, кому важны технологии. Они имеют значение для них. Если что-то сломается, у них будут проблемы. Поэтому они присоединяются к W3C — чтобы иметь возможность влиять на процесс. И для того чтобы понимать, что происходит, что делают другие ребята. Все самые большие технологические компании являются участниками W3C. Хотя случаются и странности. Opera — одна из самых маленьких компаний среди тех, что делают свой браузер. На самом деле, она зарабатывает даже меньше денег, чем Mozilla Fundation. И при этом Opera — один из самых больших и важных участников W3C. Она участвует в его работе на том же уровне, что Microsoft или IBM — как самые большие игроки.

Но в W3C есть и, например, организации слепых: Fundación ONCE из Испании или Royal Naional Institute of the Blind из Великобритании. Они в W3C потому что хотят, чтобы Веб был доступен слепым людям. Потому что это те самые люди, интересы которых они защищают. Ещё бывают компании вроде «Боинга». Да, они производят самолёты, но там работает 250 000 сотрудников. И все они используют в своей работе Веб и технологии оттуда. Так что им важно, чтобы некоторые вещи продолжали работать правильно. Например, они большие фанаты SVG. И они просто сами по себе достаточно большие, чтобы технологии были им важны.

Автор: anton


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js