<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#ffffff" text="#000000">
    I think a properly done ASN.1 file can be self-describing and can
    provide great documentation of a protocol.  It gives you a lot of
    freedom and has been well tested within the Erlang distribution. 
    The one good thing about protobufs is their handling of floating
    point makes more sense for general use (no embedded compatibility
    problems), it doesn't actually change the base of the number,
    internally, which would then alter the precision.<br>
    <br>
    On 08/23/2011 01:17 PM, Jon Watte wrote:
    <blockquote
cite="mid:CAJgyHGN8-iMWQaq=K1RUSC3_DwpQD-mc8kqw7aVmhpveC8jMaw@mail.gmail.com"
      type="cite">
      <meta http-equiv="Context-Type" content="text/html; charset=UTF-8">
      Protobuf is fully self-described, and fully forwards/backwards
      compatible, in that it can carry through "unknown" members of a
      structure, including the semantic of the fields. ASN1 is generally
      not fully self-described, because it only describes type, not
      semantic, for each field.<br>
      <br>
      <div>Sincerely,</div>
      <div><br>
      </div>
      <div>jw</div>
      <div><br>
        --<br>
        Americans might object: there is no way we would sacrifice our
        living standards for the benefit of people in the rest of the
        world. Nevertheless, whether we get there willingly or not, we
        shall soon have lower consumption rates, because our present
        rates are unsustainable. <br>
        <br>
        <br>
        <br>
        <div>On Tue, Aug 23, 2011 at 3:03 AM, Vincent de Phily <span><<a
              moz-do-not-send="true"
              href="mailto:vincent.dephily@mobile-devices.fr">vincent.dephily@mobile-devices.fr</a>></span>
          wrote:<br>
          <blockquote>
            <div>On Monday 22 August 2011 11:31:44 Mike Oxford wrote:<br>
              > BERT is pretty much a "known good quantity" but
              protobuf is more<br>
              > efficient on the wire.<br>
              ><br>
              > Anyone have thoughts on which to go with?<br>
              ><br>
              > Also, along the BERT side, does anyone have
              recommendations on AS3 and<br>
              > Java implementations of the marshallers?<br>
              ><br>
              > The downside(s) to protobuf - hard IDLs and you have
              to build the<br>
              > project and generators.<br>
              > The downside(s) to BERT - less efficient on the wire
              (verbosity.)<br>
              <br>
            </div>
            Also take a look at bjson, and one of my favourite :
            msgpack. BERT is rather<br>
            unique in supporting atoms, which *nice* and can reduce
            encoded size a lot<br>
            (but that's less significant if you compress). For encoded
            size, I have yet to<br>
            see anything beat UPER (asn1).<br>
            <br>
            A few things to consider :<br>
            * Bench size and speed with a mockup of your data :
            different formats are<br>
             better for different types of data. Add compression to your
            tests.<br>
            * Think about format extensibility. It's easy enough with
            self-described<br>
             formats like bert or msgpack, but gets more complicated
            with protobuf or<br>
             asn1.<br>
            * The initial hurdle of dealing with a grammar and
            generators is well paid off<br>
             by having data validation and nicer api (mostly via
            #records{}) later on.<br>
            * If you need to speak with the outside world,
            self-describing formats will<br>
             make your life easyer.<br>
            --<br>
            Vincent de Phily<br>
            <div>
              <div>_______________________________________________<br>
                erlang-questions mailing list<br>
                <a moz-do-not-send="true"
                  href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
                <a moz-do-not-send="true"
                  href="http://erlang.org/mailman/listinfo/erlang-questions">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
              </div>
            </div>
          </blockquote>
        </div>
        <br>
      </div>
      <pre wrap="">
<fieldset class="mimeAttachmentHeader"></fieldset>
_______________________________________________
erlang-questions mailing list
<a class="moz-txt-link-abbreviated" href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a>
<a class="moz-txt-link-freetext" href="http://erlang.org/mailman/listinfo/erlang-questions">http://erlang.org/mailman/listinfo/erlang-questions</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>