i bumped into this by chance while looking at some updated dependencies of recent commits on the #golang #badger database:

https://github.com/google/flatbuffers/wiki/Versioning

i don't like flatbuffers particularly, because they invented yet another pointless language just for a feature that lets you unpack binary encoded data one field at a time instead of all at once, i wrote a simple interface based codec for Go that did that inspired by this, but regardless, i like it that they have bucked the trend and are using a version scheme that fits them

they aren't the first to use years as versions, Microsoft did this back in the late 90s, probably for similar reasons, and Ubuntu rolled out of the gate with this philosophy and versions of ubuntu have always been marked by time not by some nonsensical number trying to represent a myriad of features somehow even though it literally can't do that

reminds me also though, you actually could even write a flatbuffers-style codec for json using a table of varint offsets and a type code index scheme, enabling a codec to walk straight to the interesting data in a json object... it would add some overhead to the file size but it would be interoperable in both directions (i would envision using a standard json string prefix field full of base64)

Reply to this note

Please Login to reply.

Discussion

No replies yet.