12 ноября 2015 г., 12:50 пользователь Victor Wagner <[email protected]> написал: > On Thu, 12 Nov 2015 12:17:34 +0300 > Max Dmitrichenko <[email protected]> wrote: > >> >> Затем они начали лочить на DBus с его бинарным API изрядную часть >> >> системных инструментов. >> > >> > да кстати, DBus в целом идея нормальная, но блин бинарный протокол >> > все портит >> >> И слава его придумщикам, что он бинарный. Текстовые протоколы ГОРАЗДО >> сложнее в написании безопасного кода. Не говоря уже о накладных >> расходах, которыми в эпоху гигабайтов и гигагерцов почему-то принято >> принебрегать. Не хватало ещё очередного джаббера для демонов на XML. >> > > XML это НЕ ТЕКСТОВЫЙ ПРОТОКОЛ.
Дело вкуса. > Я бы даже IMAP из-за обязательных > идентификаторов команды относил к "полутекстовым". Текстовый это, > например язык shell. Как вы (апологеты текстовых протоколов) пользуетесь бинарными ssh'ем, tcp/ip и так далее? Быть может, ещё и UTF-8 давит? ) Большинство протоколов - бинарные, и это правильно. Текстовые протоколы - это наследие первой тысячи RFC. Тогда не было инструментов типа современных wireshark, люди осознано шли на такие жертвы, чтобы глазами можно было найти ошибку. Тогда же ещё боялись 8-битных кодировок и избегали использования первых 30 символов в payload'е. Вы как хотите, а не хочу в такое прошлое. > А авторам шины сообщений следовало законодательно ограничить длину > сообщения 80-ю символами. Чтобы не возникало у пользователей идеи, что > по этой шине можно передавать данные, как это периодически возникает у > авторов всяких KDE-шных приблуд. Ага, не джаббер для демонов, а твиттер ) Ну-ну ) > Кстати, для бинарного протокола все равно пришлось писать библиотеку > маршаллинга. Потому что современные недопрограммисты НЕ В СОСТОЯНИИ > написать разбор бинарного формата. Вообще, переиспользование кода - это благо, безотносительно кривизны недопрограммистких рук. Тут же ещё акромя маршалинга, надо использовать unix socket'ы - вот это реально та вещь, которую не каждый в жизни щупал за вымя. > Можно было и для текстового формата > эту библиотеку написать. Или взять готовую - питоновский argparse > например. Не хватало ещё зависимостей от питона в этих вещах. > Потому что очевидно, что синтаксис шины сообщений должен быть > максимально близок к синтаксису командной строки. Для чего и кому это надо? Иметь возможность слать event'ы из коммандной строки штука нужная и полезная. Но это делается отдельной утилитой, которая понимает синтаксис текста и конвертирует их в сообщения шины. Один хрен, подрубиться telnet'ом к unix socket'ам и начать фигачить командочки не получится. -- With best regards Max Dmitrichenko

