Olej писал(а):
Итого, из тех инструментальных средств кросс-программирования, мы уже упомнили из тех, которые активно используются (не беря во внимание всякую экзотику):
- для C : APR, Glib;
- для C++ : Qt, Boost, Juce, Ultimate++;
- каждый из этих инструментов в своей группе (C или C++) - это полная альтернатива другим (т.е. Qt не заменяет Boost во многих аспектах, как и Boost не заменяет Qt в других аспектах ... но с точки зрения переносимости - они альтернативы).
Нужно сделать себе отметку о таком достаточно новом (Первый выпуск 7 июля 2008) средстве как
Protocol Buffers:
Protocol Buffers — протокол сериализации (передачи) структурированных данных, предложенный Google как эффективная бинарная альтернатива текстовому формату XML. Разработчики сообщают, что Protocol Buffers проще, компактнее и быстрее, чем XML, поскольку осуществляется передача бинарных данных, оптимизированных под минимальный размер сообщения.
Только не надо впадать в истерику при слове Google
По заявлениям Google, Protocol Buffers по сравнению с XML:
- проще;
- от 3 до 10 раз меньше;
- от 20 до 100 раз быстрее;
- более однозначный;
- позволяет создавать классы, которые в дальнейшем легче использовать программно.
Это
многоязыковая альтернатива не только XML, но и его убогому суррогату JSON ... и идеи эти во многом витают ещё со времён RPC Sun Microsystems 30-летней давности ... да и другим подобным вещам.
Protocol Buffers не предназначен для чтения пользователем и представляет собой двоичный формат.
Для десериализации данных необходим отдельный .proto-файл, в котором определяется формат сообщения.
Простенькие и элементарные примеры того, как это должно происходить, достаточные для понимания, см. здесь:
Protocol Buffer Basics: C++
Protocol Buffer Basics: Python
Это в качестве образца для 2-х языков ... там же есть и про Java, Ruby, Go, PHP и др.
Страница открытого проекта:
google/protobuf.
На использование этого инструмента наталкивает (и сейчас в связи с этим будет всплеск интереса) разборки в теме
Машинное обучение (нейронные сети) с инструментом TensorFlow ... и также активно используется в
IPython + Jupyter.