The Bond compiler is written in Haskell: <a href="http://blog.nullspace.io/bond-oss.html" rel="nofollow">http://blog.nullspace.io/bond-oss.html</a><p>It is about time considering that Microsoft research has been one of the main funders of work on the Haskell compiler.
Slightly OT- I'm working with data sets that might change, but not often if at all, which are provided by Elasticsearch. I'm processing the raw data in Flask (API), munging, joining, and dropping what I don't want going out to the world.<p>I've been toying with the idea of using something like PB, Cap'n Proto, or now Bond to define and track schema changes and centralize marshaling / serializing logic. I'm not concerned about having RPC. Does this sound like crazy talk? Anyone else happen to track schemas agains schemaless data stores?<p>(I also like the idea of not having to ship JSON everywhere if I don't want to.)
It's cool that the .NET version actually JITs specialized serialization and deserialization code at runtime. This is one place where managed languages really shine, because emitting bytecode is easier and more portable than emitting, say, raw x86. It's also safer -- the runtime can verify the memory safety and type safety of the code.
There's been a lot of questions on how Bond compares to Protobuf, Thrift and Avro. I tried to put some information at this page: <a href="http://microsoft.github.io/bond/why_bond.html" rel="nofollow">http://microsoft.github.io/bond/why_bond.html</a>
No RPC? Disappointing. There are so few choices C and C++ programmers with regard to battle-tested, easy (read: code generation for decode and dispatch), language-agnostic RPC.
And yet they still can't build a web page that isn't a shitshow.<p>Main content has horizontal scroll on portrait monitors, which underlaps the transparent fixed div they used for navigation.