Ремарка: зачем нужны стандарты

lock7Интересно, что при обсуждении веб-стандартов очень часто приходится слышать от разработчиков, что, “если я сделал сайт, оттестировал и он одинаково отображается во всех браузерах, то это – работа, а стандарты не нужны вообще”. В принципе, понятно: корень распространённости такого мнения в историческом происхождении современной “веб-разработческой” среды, сильно не хватает там системного образования “по профилю”.

Между тем, подготовленный разработчик сайтов должен бы знать: веб-стандарты придуманы для того, чтобы новые браузеры, – которые “опытный” разработчик никак не имел возможности протестировать, – также могли корректно отображать уже разработанные сайты. Веб-стандарты – они делают всю систему разработки открытой для развития. То есть, соблюдение стандартов позволяет и разработчикам браузеров делать хорошие и универсальные (относительно веб-сайтов) продукты.

Судите сами: бравый разработчик, якобы “оттестировавший сайт во всех браузерах” – даже если и мог это сделать, с оговоркой о “распространённых браузерах”, то только для актуальных на момент тестирования версий, и, скорее всего, на сильно ограниченном наборе сочетаний ОС+браузер. А через месяц выйдет новая версия браузера, и в ней сайт этого разработчика будет успешно “разъезжаться”. Особенно, если новый браузер тоже не придерживается стандартов.

Наверное, разработчик веб-сайта может договориться с разработчиком браузера о том, как же связка этих двух элементов будет работать. В принципе, такая “договорённость” не обязательно должна происходить в виде личной встречи и “согласования позиций сторон”. Разработчику веб-сайта достаточно принять к сведению и исполнению пункты документации, опубликованной разработчиком веб-браузера. В результате как раз и появляется “закрытая система”, где все ждут новой документации и не знают, как уже работающий сайт поведёт себя через год. Развивать веб-разработку в такой связке – неоправданно сложно, если вообще возможно.

Забавно, что мало у кого вызывает протест наличие стандартов, например, на бытовое электропитание. Между тем, эти стандарты позволяют переехать с имеющимся телевизором в новую квартиру в другом городе и сохранить при этом работоспособность телевизора в плане его питания “от розетки”. Вряд ли самим веб-разработчикам, заявляющим, что “оттестировал во всех браузерах”, понравилось бы сперва “оттестировать” телевизор “во всех домах”, навесив на бедный электронный агрегат десяток дополнительных трансформаторов и дюжину тумблеров вида “[if IE 6]”, а через полгода выяснить, что в новой квартире электропитание подаётся в формате “605V/173Hz” и поэтому телевизор при включении неожиданно взорвался.

Так что задача веб-стандартов, в том, чтобы цикл разработки был предсказуемым, а разработанный в 2009 году веб-сайт мог бы корректно выводиться и в специальном 3D-браузере, который придумают в Бразилии к ноябрю 2012 года. И такая же ситуация со стандартами вообще, а не только с веб-стандартами. Просто, другие стандарты обеспечивают разработку других продуктов, например, самолётов.

()

Похожие записки:



Далее - мнения и дискуссии

(Сообщения ниже добавляются читателями сайта, через форму, расположенную в конце страницы.)

Комментарии читателей блога: 6

  • 1. 4th September 2009, 16:53 // Читатель Jeff Zanooda написал:

    Пример неудачный – большинству современных блоков питания на напряжение в сети и частоту наплевать. От 605 вольт они действительно могут взорваться, но больше 240 всё равно нигде нет. И не будет, потому что электрическим компаниям тоже хочется совместимость поддерживать, да и соображения безопасности вносят ограничения.

    Проблема со стандартами в их сложности и отставании от переднего края. Одно дело стандартизировать резьбу, у которой грубо говоря два параметра – диаметр и шаг, и совсем другое дело – язык какой-нибудь. Поэтому стандартизация зачастую происходит задним числом, для галочки, и во всех сомнительных случаях всё равно приходится идти смотреть как работает существующая имплементация.

  • 2. 4th September 2009, 17:39 // Читатель зашел в гости написал:

    Как раз наоборот – очень удачный пример. По всему миру 4-5 напряжений, 2 частоты и 4 вилки. Поэтому и блоки питания нынче универсальные.

  • 3. 4th September 2009, 17:53 // Читатель зашел в гости написал:

    А вообще, Jeff Zanooda прав – зачастую стандартизация действительно происходит задним числом. Взять хотя бы видеокассеты и DVD – чисто коммерческие проекты, ставшие неофициальными стандартами во всем мире…

  • 4. 4th September 2009, 21:40 // Читатель sashket написал:

    > …к ноябрю 2012 года.

    Чувствуется лёгкий налёт апокалиптических настроений;-)

  • 5. 4th September 2009, 23:27 // Александр Венедюхин ответил:

    Мало ли: в Бразилии хорошо развивается наука и технологии.

  • 6. 5th September 2009, 08:34 // Читатель Сергей написал:

    я думаю здесь дело не столько в отсутствии должного образования (в россии его действительно мало где дают если дают вообще), а в огромной нелюбви веб-разработчиков к той среде в которой они “обитают”. стандарты все-таки составляют заметную часть этой среды. приведу пример из несколько другой темы. можно рассмотреть кроссплатформенное программирование на c/c++. язык один, стандарт текущий тоже один, однако практически все компиляторы чего-то не поддерживают или поддерживают как-то по-своему. это приводит к тому что проекты либо “затачиваются” под определенный компилятор либо полагаются на те части спецификации которые поддерживаются лучше всего. в любом случае все равно приходится “идти смотреть как работает существующая имплементация.” однако каких-то особо негативных суждений по поводу стандартов того же c, мне слышать не приходилось (по крайней мере ничего “выдающегося” не приходит на ум). другое дело веб-стандарты. язык HTML разрабатывался сначала для разметки текста, при этом всех видов разметки (с точки зрения типографии) он не поддерживает до сих пор. затем его “шатнуло” в область описания пользовательских интефейсов что не особо вяжется с задачей разметки текста. далее пробелы в типографии решили залатать с помощью css. вроде бы неплохо залатали однако путаницы добавил тот факт что каждый браузер под стилями по умолчанию понимал (и продолжает понимать) разные наборы значений (про выборочную поддержку css я даже не говорю). теперь html пытаются позиционировать как язык описания “богатых” клиентов при том что полноценной средой выполнения распределенных приложений браузеры до сих пор не являются. что я этим хочу сказать: стандарты действительно хороши, если они
    а). просты по своей структуре и непротиворечивы,
    б). охватывают лишь конкретный участок деятельности и по возможности полностью (это кстати ссылка на один из пунктов философии юникс который действительно очень хорошо работает)
    в). не допускают вольного прочтения,
    г). при расхождениях в реализации модифицируются для устранения таковых.
    без стандартов веб конечно превратился бы в аморфную массу однако текущее положение дел не способствует структурированию этой массы так как этого хотелось бы. одно дело когда имея в руках спецификацию можно разработать продукт который практически гарантированно будет работать везде где эта спецификация реализована, другое дело когда по каждому пункту приходится сверяться с существующими реализациями.
    кстати еще одним хорошим примером долго живущего стандарта явлесят OpenGL.