LINUX.ORG.RU

Google открыла свою IDL-библиотеку — Protocol Buffers

 ,


0

0

Google открыла под лицензией Apache свою реализацию IDL — Protocol Buffers. Эта библиотека позволяет описывать структуры данных на специальном языке, который потом компилируется в код C++, Java или Python. Скомпилированный код включает оптимизированные методы сериализации и десериализации структур, а также методы get и set для каждого поля.

Специально подчеркивается, что в отличие от прочих IDL, Protocol Buffers отличается простотой и эффективностью.

Сайт проекта: http://code.google.com/p/protobuf/

>>> Анонс

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

>>p.s. "uniquely numbered fields" - очень удобно в использовании, ага.

>Опять же, читайте описание - это для внутреннего представления а не для использования программистом. Для того, чтобы "расширеная" версия message была обратно совместима со старой.

>Для использования программистом предлагаются property-s в обертках... или Get Set методы если пишете на Ц++

Ага, а в .proto-файлах эти номера проставляет не программист, а святой дух. Для чего же тогда в той же документации советуют не удалять устаревшие поля из .proto-файлов, а переименновывать их в OBSOLETE_bla-bla-bla (специально, чтобы по ошибке номер поля не был переиспользован)?

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

> Какое же это масштабирование? Это обычное расширение или другими словами поддержка эволюции схемы данных.

Согласен. Так корректнее.

> В ASN.1 уже давным давно существуют для этих целей т.н. extension points...

Об этом я не знал, но Protocol Buffers заметно проще ASN.1 (во всяком случае пока). Да и цели у них разные.

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

>> В ASN.1 уже давным давно существуют для этих целей т.н. extension points...

>Об этом я не знал, но Protocol Buffers заметно проще ASN.1 (во всяком случае пока). Да и цели у них разные.

Цели то у них как раз одинаковые. А вот целевая аудитория -- разная.

Для более-менее серьезной разработки с использованием ASN.1 нужно покупать вменяемый ASN.1 компилятор, а это не дешево. Плюс к тому, отображение ASN.1 на конкретный язык программирования не стандартизировано, поэтому покупка конкретного ASN.1 компилятора означает подсаживание на иглу именно этого производителя.

А вот Google-вский protobuf способен покрыть изрядную долю запросов разработчика гораздо более простым и бесплатным инструментом.

Но это вовсе не значит, что protobuf представляет из себя что-то выдающееся. Обычная поделка на тему сериализации/десериализации, коих много. Только лейбл у этого лисапеда очень яркий и раскрученный.

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

> Для более-менее серьезной разработки с использованием ASN.1 нужно покупать вменяемый ASN.1 компилятор, а это не дешево. Плюс к тому, отображение ASN.1 на конкретный язык программирования не стандартизировано...

> А вот Google-вский protobuf способен покрыть изрядную долю запросов разработчика гораздо более простым и бесплатным инструментом.

Полностью согласен. Именно это и есть преимущество (естественно есть и недостатки).

> Но это вовсе не значит, что protobuf представляет из себя что-то выдающееся. Обычная поделка на тему сериализации/десериализации, коих много. Только лейбл у этого лисапеда очень яркий и раскрученный.

Лейбл может превратить лисапед в стандарт де факто. А стандартный лисапед это уже не лисапед, а просто стандарт. В противном случае это действительно будет просто очередной лисапед.

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

>> Но это вовсе не значит, что protobuf представляет из себя что-то выдающееся. Обычная поделка на тему сериализации/десериализации, коих много. Только лейбл у этого лисапеда очень яркий и раскрученный.

>Лейбл может превратить лисапед в стандарт де факто. А стандартный лисапед это уже не лисапед, а просто стандарт. В противном случае это действительно будет просто очередной лисапед.

Так это-то и обидно: просто из-за лейбла стандартом может стать весьма и весьма посредственное решение.

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