Мне нравится:
... предпочтительнее в мире Unix.
причина, но не объясняется почему.
Для того, чтобы понять, почему вам нужно поставить себя на место дизайнера, который хочет сделать продукт пригодным для использования.
A) Вы можете задокументировать дерьмо из бессмысленной тарабарщины (двоичной).
B) Разработайте или надейтесь, что другие разработают инструменты, которые будут изображать ваш бессмысленный тарабарщина осмысленно.
или
A) Вы можете задокументировать дерьмо из осмысленного текста, который использует язык в качестве инструмента для самодокументируемого протокола.
B) Нет необходимости в дополнительных инструментах, и дополнительные инструменты будут намного легче писать и отлаживать.
Создает поэтапную доставку и создает нечто, что легче понять и вспомнить при дальнейшей разработке. Это также создает ситуацию, когда абстракция более высокого уровня больше не нужна.
Представьте себе мир, в котором установка значения заголовка не так проста, как словарь / карта где-то в вашей структуре. Когда вы сталкиваетесь с ошибками, вам нужно постоянно задавать вопрос, правильна ли ваша структура или нет, потому что вы не могли легко увидеть, что она работает правильно без дополнительных инструментов. Это был бы мир HTTP, если бы каждая инфраструктура нуждалась в изобретении / реализации собственной абстракции более высокого уровня (на ум приходят браузеры).
Многие разработчики протоколов стремятся к эффективности, эта конструкция ориентирована на удобство использования, которое имеет первостепенное значение в индустрии разработки программного обеспечения. Неиспользуемые инструменты, которые преждевременно оптимизированы, создают ненужную нагрузку для разработчиков программного обеспечения, и эта нагрузка проявляется повсеместно.