After we all got hooked on XML, we were wondering what was next. Of course we all went with JSON because the minute you see it, you know it's better than XML in a lot of situations. Now that we have been working with JSON for a long time, I was wondering what would be next.
Because there is always something newer and better (we think). JSON is readable for humans, it's supported by a lot of programming languages and frameworks. There is basic typing in JSON and it's easily parseable.
Sounds good, no? So why am I looking for something better? Complex data types, that's why. I mean, you can hack something into your JSON to make it happen, but it will still be _your_ JSON, non-standard that is. Oh yeah and there's the license: "The Software shall be used for Good, not Evil.". WHUT?
What then? I don't know... yet. But we are currently looking at Transit. Transit supports a minimal but rich set of core types, think string, boolean, etc. Transit also includes a wider set of extension types from timestamps and UUIDS to maps with composite keys. Also, users can define extension types (I'm not sure if this is good or bad). I particularly like the way it's properly specced and comes with support for various languages already: Java, Clojure, JavaScript, ClojureScript, Python and Ruby.
So, there is life after JSON and it's called Transit. I would not call it it's successor, but it's a heck of an interesting alternative, in some cases.