TGViewer
Системный сдвиг Системный сдвиг @systemswing · 10.2K subscribers
Post #756 4.06K
С некоторым удивлением узнал о существовании бинарного XML: формата EXI (https://www.w3.org/TR/exi/)

То есть, это такой Protobuf/AVRO, но из экосистемы XML. Работает примерно так же: подаете на вход схему XSD и документ XML, получаете на выходе байтовый поток. В принципе, можно схему не подавать, но она позволит лучше упаковать всякие сложные типы вроде даты или перечислений.

Звучит просто. Внутри, как часто бывает с XML, нечеловечески сложные концепции: формальные обучающиеся грамматики, конечные автоматы, нужна ученая степень, чтобы разобраться.

Ну и видно, что авторы угорали, когда разрабатывали спецификацию.

Там даже есть специальный заголовок '$'.'E'.'X'.'I'!

По размеру итоговый поток получается в 100 раз меньше, чем XML, и в 14 раз меньше, чем просто заархивированный GZIP'ом XML (в худших случаях — на 60% лучше обычного архиватора). Скорость обработки в среднем в 14.5 выше, чем обычного XML (в лучших случаях — в 250 раз!). Ну и скорость упаковки/распаковки тоже в десятки раз выше — за счет понимания структуры XML.

Первый драфт вышел в 2007, последняя версия спецификации — в 2014, а в 2018 появились странные вещи типа EXI for JSON, который по некоторым замерам тоже жмет лучше, чем альтернативы.

Protobuf вышел в 2008.

Всё это мне напоминает конвергентную эволюцию, когда неродственные виды приобретают схожие черты при обитании в схожих условиях (то есть, решающих одну и ту же задачу). Ну и борьбу за экологическую нишу. Мы знаем, что EXI массово не используется, это место бинарного первого выбора занимает Protobuf. Когда освобождается какая-то ниша, представители каждого класса и отряда предлагают своих кандидатов. Так в Южной Америке роль копытных долго выполняли грызуны, а хищников — сухопутные длинноногие крокодилы и плотоядные нелетающие журавли. Бывают странности в изолированных экосистемах. Конкуренции они обычно не выдерживают, что и видно в случае Protobuf / EXI.

Хотя в отдельных изолятах могут и сейчас использоваться (и EXI применяется!)

А разговоры про переход на JSON каких-нибудь 2009-2010 годов напоминают нынешние разговоры про GraphQL. Ну вы посмотрите на этот JSON! Ведь не пойми что: схемы нет, безопасности нет, стандартного протокола вызова нет, зачем туда идти? (Характерная цитата из обсуждения: 'There are also a range of protocols/standards that are built on top of XML, such as SOAP, XML-Signature, XML-Encryption, WS-Security, SAML, etc. This does not exist for JSON.'). А вот ещё подождем немного, EXI включат в набор инструментов SOAP, и тогда заживем.

Ну реально — мог бы появиться свой gRPC на основе XML. Never happend. Многие виды в изолированных экосистемах не выдерживают конкуренции с более приспособленными.
  • 🔥 12
  • 👍 6
More from @systemswing
  1. Sep 25, 2026Как облегчить работу ИТ-аналитика уже сейчас — без долгосрочных перестроек процессов? Обсу…
  2. Sep 25, 2026Должен вам сказать, на самом деле я не отношусь к ранним последователям. Я даже скорее тор…
  3. Sep 21, 2026Знаю, что в Яндексе работает много аналитиков данных, или BI-аналитиков — тех, кто перемал…
  4. Sep 18, 2026Дальше культурно-историческая теория деятельности (в изложении Энгестрема) говорит о проти…
  5. Sep 17, 2026Что-то перерывы между постами стали совсем длинными. Надеюсь в ближайшее время вернуться в…
  6. Aug 29, 2026Сел тут выписывать категории стейкхолдеров. В проекте положено делать анализ стейкхолдеров…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →