|
|
|
|
|
by ticking
4106 days ago
|
|
The current serialisation code needs to die, and be replaced with something usable and already existing, e.g. zeromq + msgpack. There are currently horrible bugs in the very foundation of ROS, the spec of the serialisation format and its hashing, that are in `wontfix` status because the maintainers are idiots. The arity of a field (value, array [and its arity], list) is not part of the hash of a message definition. Thus it is possible to change a message definition breaking existing protocols without the clients noticing. This is a hard to detect bug, that I've seen several times in the wild.
But it won't be fixed because it would break old precompiled packages (yes one would have to recompile things gasp).
So instead everything is left broken. But hey I heard they want to change the messaging protocol to CORBA for 2.0, what could go wrong with that... |
|
We use ros serialization quite intensively and I would have to say it "works fine". I previously came from a more enterprise-centered environment working with a rabitMQ/Protobuff&Json stack, so I probably wouldn't have created ROS serialization the way the maintainers did, but it hasn't gotten in our way at all.
I don't think it's that great of an idea to place too much validation in a serialization framework, as your are just asking for rigidity, which is why Json went the way they did and is much better for it.