Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
Message from discussion What's the point of Protocol Buffers?

Received: by 10.150.218.20 with SMTP id q20mr3349325ybg.18.1279920541558;
        Fri, 23 Jul 2010 14:29:01 -0700 (PDT)
X-BeenThere: protobuf@googlegroups.com
Received: by 10.150.69.26 with SMTP id r26ls236380yba.5.p; Fri, 23 Jul 2010 
	14:28:59 -0700 (PDT)
Received: by 10.151.63.18 with SMTP id q18mr3354132ybk.10.1279920539654;
        Fri, 23 Jul 2010 14:28:59 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.101.179.22 with SMTP id g22mr413418anp.6.1279919887323; Fri, 
	23 Jul 2010 14:18:07 -0700 (PDT)
Received: by i31g2000yqm.googlegroups.com with HTTP; Fri, 23 Jul 2010 14:18:07 
	-0700 (PDT)
Date: Fri, 23 Jul 2010 14:18:07 -0700 (PDT)
In-Reply-To: <AANLkTinM56dqrIXE2-wGTz-9JodXh46BV6t3N5pg-y1l@mail.gmail.com>
X-IP: 172.26.76.244
References: <49253c98-626b-4033-9ae3-25c7e50b667f@k19g2000yqc.googlegroups.com> 
	<AANLkTiktA+Oer-_djHvSvdzqKeCYZcR9ZCGwo5qrhUJs@mail.gmail.com> 
	<AANLkTinM56dqrIXE2-wGTz-9JodXh46BV6t3N5pg-y1l@mail.gmail.com>
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; en-US) 
	AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.99 Safari/533.4,gzip(gfe)
Message-ID: <23ca80e9-d02d-4bb8-91af-da5adeaaae33@i31g2000yqm.googlegroups.com>
Subject: Re: What's the point of Protocol Buffers?
From: cmichael <cmmich...@gmail.com>
To: Protocol Buffers <protobuf@googlegroups.com>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

> =A0 =A03. =A0Schema evolution supported out-of-the-box (backward compatib=
ility)

4. Also, because of the schema, protobufs are strongly typesafe, and
JSON is not.

5. Using the APIs makes programs easier to understand and debug,
versus libraries that support object serialization as an afterthought,
because:
 - Unlike a complex class where serialization can have side effects,
you always know how a proto will behave, you know that it will always
serialize (very useful for debugging).
 - Much like the MVC model, it actually forces a separation of the
Model (the protobuf) from the Controller (the program using the
protobuf). You can achieve this with any number of methods other than
protobufs, but since the question is why should someone use protobufs
instead of latent serialization, this seems pertinent. Model/
Controller separation just gives you better code, which is why I would
probably use protobufs even if I was writing a program that did very