Стоя на плечах гигантов

Стандарты - эти объемные документы, полные жаргона, многословных предложений и взаимосвязанных определений со ссылками на самих себя - их нужно ненавидеть, но и любить тоже. Они делают все, что мы делаем, возможным.

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

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

Для тех из нас, кто занимается интернетом и веб-программным обеспечением, легко идентифицировать громкие имена: IETF, W3C, WHATWG, Ecma, Unicode и многие другие.

Инженерная группа Интернета

IETF - ведущая организация по стандартизации Интернета. Его цель можно описать простым лозунгом: «Сделать Интернет лучше». С самого начала, еще в 1986 году, компания добивалась этой благородной цели с потрясающим успехом.

Разрабатываемые им стандарты публикуются в форме меморандумов, которые называются запросами на комментарии. При работе с интернет-технологиями не нужно много времени, чтобы наткнуться на влияние RFC. Повсеместное использование слов MUST, REQUIRED, SHALL, SHOULD, RECOMMENDED, MAY и OPTIONAL, которые мы все признаем, пришло из мира RFC.

По традиции, RFC создаются отдельными людьми или небольшими рабочими группами, хорошо знакомыми с внутренней работой технологии. Это контрастирует с медленной, методичной и часто утомительной работой других организаций по стандартизации.

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

IETF опубликовала многие известные стандарты:

  • IP, UDP и TCP: скрытые основы сетей
  • DNS: адресация имени хоста
  • SMTP: отправка и получение писем
  • MIME и URI: идентификация ресурсов
  • HTTP, FTP и IRC: протоколы для гипертекста, файлов и чата
  • SSH и TLS: криптографическая безопасность

Консорциум World Wide Web

W3C - одно из самых узнаваемых имен в веб-стандартах, и не без оснований. С 1994 года он служит открытым форумом для дискуссий о сети. Это был уполномоченный орган, который позволил около 450 организациям-членам работать вместе, чтобы «раскрыть весь потенциал всемирной паутины».

Их первоклассные работы сразу узнаваемы: CSS, HTML, DOM, XML, SVG. Ни одна другая организация по стандартизации не имеет таких полномочий. И они не останавливаются на достигнутом. Важные стандарты сейчас разрабатываются во многих развивающихся областях:

  • ARIA: сделать Интернет доступным для самого широкого круга людей.
  • WebRTC: одноранговое видео, голос и данные в реальном времени.
  • OWL, RDFa, JSON-LD и SPARQL: организация семантической сети с помощью классификации, тегов, связывания и запросов.

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

Эндрю С. Таненбаум заметил, что «стандарты хороши тем, что есть из чего выбирать». В то время это было не так уж и сложно для компаний, которые решили действовать в одиночку, утверждая, что имеют стандарт. Но времена бок о бок конкурирующих стандартов по большей части исчезли, и W3C имеет к этому большое отношение.

Рабочая группа по технологиям веб-гипертекстовых приложений

WHATWG - это аномалия. Он не дает ничего близкого к разнообразию или количеству спецификаций, которые делают крупные организации по стандартизации. Вместо этого он сосредоточен на одном: HTML и связанные с ним технологии.

WHATWG родилась из разочарования и политических интриг. В 2004 году трем крупным игрокам в браузеры - Mozilla, Apple и Opera - надоели медлительные темпы W3C и их настойчивые требования о том, что HTML должен развиваться вместе с XML. В ответ новая группа начала работу по продвижению HTML, используя другой подход, который они назвали «жизненным уровнем». Результатом стало чрезвычайно успешное внедрение HTML5.

WHATWG продолжила вводить новшества посредством сотрудничества. Поскольку их членство расширилось, включив в него Microsoft и Google, группа была активна в определении этих других ключевых технологий:

  • Веб-сокеты, веб-воркеры и локальное хранилище: расширение возможностей HTML за пределы его корней, ориентированных на документы.
  • Fetch и CORS: определение более надежной сетевой модели для безопасного извлечения ресурсов.
  • DOM: формализация и расширение объектной модели документа.

Долгое время мы жили двойными стандартами HTML. В 2019 году, через пятнадцать лет после создания WHATWG, W3C окончательно капитулировала, уступив контроль над HTML де-факто «жизненному уровню».

Ecma International

Самый широко используемый в мире язык программирования зародился в 1995 году как простой язык сценариев. Два года спустя Ecma International формализовала его в ECMA-262 как EcmaScript. Сегодня большинство из нас просто называют это JavaScript.

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

С тех пор EcmaScript идет полным ходом. Большинство из нас, кто работает над веб-проектами, очень благодарны комитету TC39.

Консорциум Unicode

Из всех организаций по стандартизации мне больше всего нравится Unicode Consortium. С момента своего создания в 1991 году у него была единственная цель: обеспечить представление всего текста на компьютерах для всех языков мира. Его работа была опубликована в одноименном стандарте Unicode.

Мотивом для создания стандарта послужило сильное предубеждение в области информатики к латинскому письму и английскому языку. Когда компьютеры начали использоваться за пределами Америки и Европы, для кодирования диакритических знаков было разработано множество отдельных кодовых страниц. Затем последовали отдельные стандарты кодирования русского, японского, корейского и китайского языков. Было очевидно, что вскоре возникнут и другие проблемы с кодировкой символов: системы письма с письмом слева направо в иврите и арабском языке; письма на восточноазиатских языках сверху вниз; глифы полуформ индийских шрифтов; и пиктограммы древних языков.

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

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

И еще много всего

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

  • Международной организации по стандартизации (ISO) и Международной электротехнической комиссии (IEC) за их обширную работу по стандартизации компьютерных языков, графики, кодирования аудио и видео, Интернета вещей и искусственного интеллекта.
  • IEEE (всегда аббревиатура, редко произносимая по буквам) для их стандартизации интерфейса переносимой операционной системы (POSIX), который позволяет нам использовать каталоги, имена файлов и точечную нотацию (../) взаимозаменяемо на всех наших устройствах.
  • Open Group за публикацию единой спецификации UNIX, которая предотвращает разделение множества различных UNIX-подобных дистрибутивов на непригодные для использования феодальные владения.
  • Национальный институт стандартов и технологий (NIST) за свои криптографические стандарты: DES, SHA, AES и HMAC.

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

Первоначально опубликовано на https://2020stack.com 14 октября 2020 г.