• ? программазм Вот интересно, когда люди изобретают свою принципиально новую базу данных, сервис мониторинга, или подобную вещь. Свое изобретение они начинают с бинарного протокола, закодированного вручную на стороне сервера, клиенту же предлагается использовать сишную библиотеку с максимально уебищным API, годным только для Си. Вот что мешает им взять какой-нибудь protobuf или подобное решение, чтобы клиенту выдавать файл с протоколом, из которого он уже сгенерирует сериализаторы и напишет удобный для своего языка интерфейс?
    Не видел ни одного случая, чтобы взяли протобаф и просто сгенерировали сериализаторы для своего протокола. У всех либо развесистый REST-ХУЕСТ JSON-ХУЁН API, для которого надо писать много ручного кода, либо принципиально новый бинарный протокол, для которого код вручную вообще не напишешь, и приходится жрать клиентскую библиотеку на Си. Почему так?

Replies (24)

  • @segfault, А чем json отличается от протобуфа? Такой же способ кодирования структурной хуйни
  • @max630, Тем что у протобафа есть файл yoba.proto из которого можно тупо сгенерировать весь код для сериализации / десериализации. А для JSON этот код все равно надо писать вручную. Ну и протобаф бинарный и компактный задаром.
  • @max630, В случае с хаскелем тебе надо написать типы, задерайвить для них жсон, протестировать, что полученный жсон соответствует схеме (если она есть). Протестировать вручную, в конце концов. Протобаф все это делает ненужным.
  • @segfault, swagger-codegen вроде как умеет работать и с хаскелем
  • @segfault, а для жсона нет библиотеки которая из схемы тебе тупо код сгенерит?
  • @vt, Спасибо конечно, но я тут как раз смотрю на пример бинарного ПРИНЦИПИАЛЬНО НОВОГО протокола кафки. Клиентская библиотека у нее — кал говна.
  • @max630, для жсона каждый начинает с изобретения своего формата схемы.
  • @max630, если и есть, жсон схема — опциональная вещь, и все равно хуже протобафа. Нахуя нужен жсон если есть протобаф?
  • @vt, Ну и да кстати, их несколько версий, все несовместимые, и генераторов не так чтобы жопой ешь.
  • @segfault, потому что Fuck You, вот почему!
  • @segfault, У протобафа есть фатальный недостаток
  • @segfault, Нахуя нужен протобаф, когда я прямо из браузера могу с базой ебаться
  • @rkit, А ведь и правда, нахуя бэкэнды вообще пишут. Дело говришь.
  • @segfault, Со времён до избрания аякса не все пхпшники ещё вымерли.
  • @rkit, На самом деле давно пор писать все в кучу и нехай компилятор разбирает, что на каком энде выполняется
  • @rkit, Было в 1С 8.1 в 2002 году
  • @vt, А разве 1С это не пхпговно из 2002го года?
  • @rkit, 1с-битрикс это не то, что называют 1с. Битрикс это да, пхпговно
  • @vt, То есть ты вообще про десктопную хуету? Это не то
  • @rkit, Именно то. Там внутри — сервер и клиент, в том числе браузерный. И в старых версиях оно автоматически гадало, где выполнять код, но потом они все переделали и стало надо указывать явно конструкциями &НАКЛИЕНТЕ и &НАСЕРВЕРЕ
  • @rkit, и еще &НАСЕРВЕРЕБЕЗКОНТЕКСТА, вот!
  • @vt, Ну ок тогда, молодцы. Теперь такое же для остальных 99.999% задач пожалуйста.
  • @rkit, Алсо, аналогичное было в ASP.NET Web Forms, там тоже пишешь код и не думаешь где он выполняется. Но это тоже задепрекейтили, наверное потому что там клиентская обвязка была из десятка мегабайт нечитаемого джаваскрипта и никто это не смог поддерживать.
  • @vt, Подозреваю что среди красноглазого говна самым близким аналогом был Google Web Toolkit, и он тоже уже все.