std.serialization: pre-voting review / discussion
Jacob Carlborg
doob at me.com
Wed Aug 14 00:40:12 PDT 2013
On 2013-08-14 00:54, glycerine wrote:
> I'm included to prefer the Thrift bindings over Orange since I need
> binary compression and type safety (XML??? yikes), inter-language
> operability, and most essentially, data versioning.
>
> Nonetheless, in order to make a realistic comparison and evaulation, I
> need much more of the theory of operation, and a description of the
> Orange design. I appreciate that you worked hard with the
> documentation. But most of the essential description is missing.
It seems like we have a different meaning of "essential". I have
documented the package for what it is, not for what it's not. It's a
package for serialization, not a RCP or network package. SSL support
doesn't make sense, it's like asking "Does std.algorithm.map has SSL
support?".
You seem to like me to write a comparison to Thrift in the
documentation. You have to make the comparison yourself.
> Here is an outline of serialization tradeoffs and architectural issues
> that should be discussed in the documentation.
>
> 1. Interface Definition Language (IDL): required or not? If not, how do
> know the details of what to serialize. If not, how do you handle/support
> data versioning? If not, how do you interoperate without another
> language? If yes, which types are supported and what is the syntax and
> grammar of the IDL?
>
> 2. Is the serialized format independently de-marshallable, or is meta
> information required in addition?
>
> 3. Which transports if any, are integrated/supported? Memory buffer,
> file descriptor, framed, zero-copy, socket, SSL support, JSON, etc.
>
> 4. Are service definitions supported (methods on objects or functions)?
> Are they versioned?
>
> 5. How compatible is the format with other languages?
>
> 6. How compact is the encoding?
>
> 7. How fast is to marshal and unMarshal? What tradeoffs were made.
>
> 8. Is there a debug encoding, text that is human readable?
>
> 9. To emphasize the important point of the first item again: data
> versioning: how do you upgrade your cluster when a data definition
> changes? If your serailization format requires simultaneous downtime
> for the entire cluster instead of supporting incremental upgrade, I'd
> say your architecture is seriously antiquated.
Many of these questions doesn't even make sense, as I stated above.
--
/Jacob Carlborg
More information about the Digitalmars-d
mailing list