LINUX.ORG.RU

Протокол и API libvirt - зачем так делать?

 , , , ,


0

2

Собрался недавно допилить бэкенд libvirt для NixOps. Мама дорогая. Почему всё, что делает красношапка, такое NIH-говно? Они для libvirt придумали свой особенный бинарный RPC-протокол. В который пихают текстовый XML. Такое впечатление, что у разработчиков левое полушарие не ведает, что делает правое. В бинарном протоколе всё до предела сжато, даже вызываемый метод кодируется одним int32. Старая школа, ёпта. В этот метод пихается огромная XML-портянка. «Nobody ever got fired for choosing XML.» Зачем нам REST, ZeroMQ, MsgPack-RPC? У нас нет времени, чтобы сношаться с ними. Лучше нахерачим свой несовместимый протокол. Даже у Microsoft Azure, блджад, обычное пролетарское REST API. Даже ублюдский Amazon EC2 работает через обычное простое HTTP. Но красношапке, блджад, надо, чтобы впереди планеты всей. Им только ядро и GCC пилить удаётся вменяемо. Всё остальное, к чему прикасаются, обращается в ссаный понос. Начиная с fontconfig на XML. Далее сраный DBUS, переусложнённый хуже корбы и соапа. Потом... продолжите сами. Сраный микрософт от линукса, блджад. Сдохните, суки, и околейте. Спасибо, наболело.



Последнее исправление: leave (всего исправлений: 1)

Ответ на: комментарий от pekmop1024

Да пускай бы юзали хоть XML-RPC - нет, надо свой огород городить.

HeipaVai1o
() автор топика

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

Deleted
()
Ответ на: комментарий от Deleted

Так у них и либа ублюдская, а питоньи байндинги ещё более ублюдские.

И в этот сишный-питоний интерфейс всё равно надо пихать XML. Хочешь создать диск в хранилище - пиши XML-портянку. Эргономика уровня XXI века.

HeipaVai1o
() автор топика
Ответ на: комментарий от HeipaVai1o

XML-портянку

по моим наблюдением за лором, 1% хэйтинга XML — это тонкий троллинг, 99% — это некомпетентные школооло, которые гундят про излишность, трудность писание руками и чтения глазами. нового пока ничего ни один из особо одарённых генетически придумать не смог.
и так одно и тоже по кругу, будто их заставляют писать XML в notepad.exe
в таких треда очень быстро выясняется, что они ничего про XML не знают (некомпетентные же), до такой степени, что ни специальное ПО загуглить, ни сраный плагин с автокомплитом в свой блокнотик не удосужились поставить.
ну а школотроны они, обоснованно за унылый максимализм и непринятие ничего, где нужно подумать секунд 30 и погуглить пару раз.
мне даже не интересно спрашивать к какому лагерю относишься ты, так толсто, что в 1% автоматом пролетаешь.

продолжу наблюдения.

system-root ★★★★★
()
Последнее исправление: system-root (всего исправлений: 1)

Кто у нас огнетушители производит? Хочу акций прикупить

dyasny ★★★★★
()
Ответ на: комментарий от system-root

продолжу наблюдения.

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

Hint: пример хорошего проектирования: x window protocol/xlib/xcb.

anonymous
()
Ответ на: комментарий от pekmop1024

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

mos ★★☆☆☆
()

ну они индусов нанимают манагерами, да еще бывших мелкософтовцев. так шо всё номрально.)

mos ★★☆☆☆
()
Ответ на: комментарий от system-root

Ржу в голос с XMLных говноедов. Им в рожу тычут непригодностью поделки ни для чего, а они рассуждают про хейтерство :)

slovazap ★★★★★
()

Почему всё, что делает красношапка, такое NIH-говно?

Потому что вся разработка отправляется бывшим студентам, готовым переехать в Чехию на $10 в час. Они реально решили проверить гипотезу про мартышек и печатные машинки.

anonymous
()
Ответ на: комментарий от system-root

по моим наблюдением за лором, 1% хэйтинга XML — это тонкий троллинг, 99% — это некомпетентные школооло, которые гундят про излишность, трудность писание руками и чтения глазами

Плюсирую. К тому же поциент (автор темы) мог бы себе хэлпер написать, ну хоть что-нибудь смастерить. Будто их заставляют вручную парсить XML как в 60-х годах, иль в графическом редакторе.

I-Love-Microsoft ★★★★★
()
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)

Они для libvirt придумали свой особенный бинарный RPC-протокол. В который пихают текстовый XML. Такое впечатление, что у разработчиков левое полушарие не ведает, что делает правое.

Скорее всего, примерно так и есть. Глянул мельком описание RPC протокола — там конечно же никаких упоминаний XML нет. В RPC действительно экономят байты. А XML-ками общается уже код, который работает поверх того RPC.

Странно, что у тебя в голове эти две сущности смешались в одно целое.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

В RPC действительно экономят байты. А XML-ками общается уже код, который работает поверх того RPC.

Какой смысл экономить байты в RPC и гонять поверх него XML-простыни?

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Какая разница, что гоняют по RPC протоколу? Задача его разработчиков — сделать простое и эффективное решение.

Ты что ли всегда делаешь полный стек? Или переиспользуешь слои, написанные другими разработчиками?

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Какая разница, что гоняют по RPC протоколу? Задача его разработчиков — сделать простое и эффективное решение.

Эффективность не только в байтах меряется. А в случае локального RPC, байты - дело десятое.

Ты что ли всегда делаешь полный стек? Или переиспользуешь слои, написанные другими разработчиками?

Я никогда не изобретаю свой RPC. И, если у меня есть выбор, одним из критериев является соответствие контенту (например, text-based протокол RPC, если поверх него всё равно передается XML.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Какой смысл экономить байты в RPC и гонять поверх него XML-простыни?

Не знаю, что внутри у libvirt, но судя по virsh vol-upload, там не только xml поверх rpc гоняется.

dexpl ★★★★★
()
Ответ на: комментарий от dexpl

Какой смысл экономить байты в RPC и гонять поверх него XML-простыни?

Не знаю, что внутри у libvirt, но судя по virsh vol-upload, там не только xml поверх rpc гоняется.

Принято. Но я думаю, что с vol-upload оверхед RPC вообще не важен.

tailgunner ★★★★★
()
Ответ на: комментарий от dexpl

Текстовый протокол HTTP прекрасно справляется с бинарными данными, например.

anonymous
()
Ответ на: комментарий от slovazap

Ржу в голос с XMLных говноедов. Им в рожу тычут непригодностью поделки ни для чего, а они рассуждают про хейтерство :)

Тот случай когда не понятно: это толстый троллинг или тонкий?

Deleted
()
Ответ на: комментарий от system-root

Есть ещё люди, насмотревшиеся на криво спроектированный XML (а такого, к сожалению, дохрена) и считающие, что весь XML такой.

Вот, скажем, ui-файлы и у Gtk, и у Qt сделаны на XML. Только у Gtk набор тегов заточен именно на ui, а кутешники сделали мета-структуру, которой можно описать вообще всё, в том числе ui. В результате Gtk ui приятно читается и ненамного многословнее, чем JSON, его можно именно что легко править в блокнотике. А Qtшный перегружен и вырвиглазен. Причём в какой-то момент кутешники это осознали, но вместо рефакторинга структуры XML попёрлись изобретать QML. (Да, я в курсе, что в QML помимо описания схемы ui натащили ещё кучу всего - но можно было и не натаскивать, а положить отдельно.)

(Это мнение человека, чей основной и практически любимый тулкит - именно Qt, если что.)

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от hobbit

MathML квинтэссенция говно-XML по-моему.

anonymous
()

Это вы еще с промышленными устройствами не работали: TCP + KLV, где каждый L - BER, V - ОТДЕЛЬНЫЙ МАТЬ ЕГО XML!

PPP328 ★★★★★
()
Ответ на: комментарий от Legioner

Спека DTD в 2 раза больше самого XML. При этом он почти не используется. Говорю как автор xml парсера.

Многострочный текст - боль. Много препроцессинга нужно, куча нюансов с «пробелами» по краям (leading/trailing). Ещё и xml:space, который почти никто не умеет нормально.

RazrFalcon ★★★★★
()
Ответ на: комментарий от Deleted

Вот именно. А вот когда у игры такой протокол и без библиотеки это огорчает..

tyamur ★★
()
Ответ на: комментарий от RazrFalcon

Спека DTD в 2 раза больше самого XML. При этом он почти не используется. Говорю как автор xml парсера.

Ну это проблема DTD, не? Я вот DTD тоже почти не пользовался. Как он влияет на XML как таковой? Не реализуй его поддержку и всё.

Многострочный текст - боль. Много препроцессинга нужно, куча нюансов с «пробелами» по краям (leading/trailing). Ещё и xml:space, который почти никто не умеет нормально.

Хз, как у пользователя XML никогда не было с этим никаких проблем. Не умеет - и не надо значит. Кому нужен многострочный текст, те используют CDATA или кодируют его в каком-нибудь Base64 или HTML. А какие там нюансы - это вообще не интересно никому кроме авторов парсеров.

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

Не реализуй его поддержку и всё.

В моей задаче XML может быть произвольный, соответственно приходится и DTD реализовывать.

А какие там нюансы - это вообще не интересно никому кроме авторов парсеров.

Лол. Отлично. Это проблема парсера, а не стандарта. Окей.

RazrFalcon ★★★★★
()
Ответ на: комментарий от Legioner

Я вот DTD тоже почти не пользовался. Как он влияет на XML как таковой?

И эти люди рассуждают о XML.

tailgunner ★★★★★
()
Ответ на: комментарий от RazrFalcon

В моей задаче XML может быть произвольный, соответственно приходится и DTD реализовывать.

Даже с подстановкой из /etc/passwd? По-мне DTD вредная гадость. В произвольных XML оно должно быть отключено в 99%.

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

Да. DTD позволяет ссылаться на произвольные файлы, что бред.

И как мне отключить DTD в парсере? Я его или поддерживаю или вообще пропускаю файл в целом. Любой способ пропуска DTD - дыра.

RazrFalcon ★★★★★
()
Ответ на: комментарий от RazrFalcon

Просто игнорируй DTD-инструкции. Если, конечно, тебе не присылают файлы, которые именно требуют DTD для корректной обработки. Я пока DTD в реальном мире за 12 лет встречал только для валидации (да и это обычно на XML Schema делают).

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

Как я могу в парсере его игнорировать?!

То что вы с ним не сталкивались - не значит что его нет. Вот к примеру каждый второй SVG в инете с ним, ибо Adobe им злоупотребляет.

RazrFalcon ★★★★★
()
Ответ на: комментарий от RazrFalcon

Как я могу в парсере его игнорировать?!

Ну абсолютный минимум реализуй, чтобы пропускать его объявление и всё.

То что вы с ним не сталкивались - не значит что его нет. Вот к примеру каждый второй SVG в инете с ним, ибо Adobe им злоупотребляет.

Угу, то-то я писал не так давно скрипт, чтобы его вырезать нафиг (вместе с прочим мусором, который эти содержат эти экспортированные документы) и прекрасно SVG работают без него.

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

Вы не понимаете. Для того, чтобы пропустить DTD нужно его реализовать. Просто прыгать к ]> нельзя, так как оно может находиться внутри DTD.

прекрасно SVG работают без него

Я автор либы, которая рендерит svg. Расскажите как DTD не нужен, ага.

RazrFalcon ★★★★★
()
Ответ на: комментарий от RazrFalcon

А чего мне рассказывать, если я просто регвыром грохаю DTD и всё. Ну может где-то и есть какие-то, которые после этого перестанут правильно отображаться, среди сотен тех, которые я использовал в нескольких мобильных приложениях, я таких не встречал.

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

А чего мне рассказывать, если я просто регвыром грохаю DTD и всё.

А и правда.

t184256 ★★★★★
()
Ответ на: комментарий от RazrFalcon

XML хорошая штука. Может быть там есть какие-то тёмные углы, но ничего лучше XML я пока не видел. DTD это какая-то фигня, при этом DTD это не что-то неотъемлемое от XML, поэтому я не вижу никаких проблем в том, что он существует.

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

Я на оборот только за XML, но DTD - говно и является неотъемлемой частью.

Вот namespaces идут отдельной докой, а DTD является частью XML.

RazrFalcon ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.