Request for Feedback: Universal Binary JSON
- === Context ===
I have been working on the Universal Binary JSON Specification (http://ubjson.org/type-reference/) for almost 2 years; I originally launched it here in this group a while ago and got a lot of excellent feedback/thoughts and criticisms that helped drive the spec in the right direction.
=== History ===
There has been a lot of changes to the spec over the last year. One of the _biggest_ hangups we have had moving the spec forward (mostly due to my reluctance to move until we find a solution that is elegant, concise and intuitive) is defining optimized representation of the ARRAY and OBJECT containers that would allow JSON-compatible representation of binary data.
We have discussed an ARRAY-like construct that requires a length and type argument (https://github.com/thebuzzmedia/universal-binary-json/issues/13) which seemed ugly to me and not consistent with the other container types.
We discussed a more generic "Typed Group" construct that added flexibility to ARRAYs, but led to more complex generating/parsing logic (https://github.com/thebuzzmedia/universal-binary-json/issues/25)
=== Question / Request for Feedback ===
I attempted to distill all these ideas down into (what I thought) was elegant optional arguments for both ARRAY and OBJECT defined here: https://github.com/thebuzzmedia/universal-binary-json/issues/27
That discussion covers quite a few ideas, but the crux of my question is around the original post -- the remainder of the discussion goings into Typed Groups, optional STRING markers for keys in OBJECTS and other minor optimizations.
The arguments against this approach so far have seemed like good points (added complexity / optional args can be hard to understand for new comers), but it is hard for me to get a sense for how good/bad these arguments are with as much tunnel vision as I have which is why I am hoping for a fresh/outside perspective from folks that are concerned with things like file formats, parsers and generators (like this group).
My apologies if this is the wrong place or you guys hate hearing about this. I've appreciated the collaboration in the past.