HTML, XML, Markdown, RST is are all "markup languages" (this is what ML in XML/HTML stands for). This means that your file is a single logical stream of text, from start to end, and the format just adds properties ("marks up") to some section of the text. You can remove tags from HTML and syntax from RST and still get a readable and useful text. .
JSON and YAML are designed for storing data. There is no inherent stream of text; most of the times no one ever reads YAML documents from start to finish. If you remove all tags, the results make no sense.
(The data formats can be better or worse for working with multiline strings -- for example both YAML is great with multiline strings when using block quoting, and JSON is just a huge pain. But that does not make them markup languages)
Mixing data and markup format causes pain -- this is what XML did and this is one the big reasons people hate it. All the tooling is designed for "marked up text" use case, and using it to store data makes it awkward.
If you want to share a data file with someone, FTD is a very compelling alternative to define the schema, represent the data.
Further, XML also has XSLT, which can be used for rendering XML data to arbitrary strings, but is mostly used for creating HTML, so data can be visualised properly.
Unfortunately XML relined on HTML (which in turn relied on CSS and Javascript). With FTD you do not have to mess with such 4 technologies (these are hotchpotch mix, not a well designed whole).
XML was meant to be handwritten, but markdown vs HTML has clearly demonstrated SGML syntax is not great for writing, markdown is.
You will see that authoring types, representing data, and writing prose is really pleasant in FTD compared to all of them.
Check out this FTD fiddle for example: https://play.fifthtry.com/?ekey=z2jcGxP1hAI01i1Fho515Q, this has record definition, list creation.
And then you can do event handling etc, for example here: https://play.fifthtry.com/?ekey=pMsktS3rOFnS0sGaSe3K0w
Using react-ish components looks like reusability will max out in open source - like have custom HTML “tags” for compound elements. Very promising.
I am the founder of FifthTry.com and creator of the FTD document format.
Backstory: I came across Matthew Griffith’s Style Elements library[1] years back, it made me rethink how to build and style user interface: thinking in terms of rows and columns was very intuitive to me compared to the CSS box/flex models. Style-Elements and then `elm-ui` offer a really small set of properties, and they are good enough for us to replace CSS for most part, this makes me think CSS is a bit over designed, or may be not designed at all, a hack gone too long.
But CSS is not the only thing I struggle with, there is also the complexity of three completely different language you have to learn to build any simple user interface today, HTML, CSS and JavaScript. You can do a lot with just HTML / CSS, especially if you are not building web-apps but web pages, but with just HTML / CSS its not possible to create re-usable components.
And Javascript is just too much (so much so that a lot of backend developers declare themselves incapable of building basic web interfaces).
Another problem that bugs me is the data representation / exchange languages: JSON/YML/CSV are too popular, and yet they leave a lot to desire, there is no way to define schema in any of them, writing them by hand is too cumbersome without programming editors, and then its just one more thing to learn on top of the three named above.
It always bugged me that this can not be the best we can do.
FTD is an attempt to take Griffith’s ideas, create a (hopefully) simple syntax, and create a unified language that replaces HTML/CSS/Javascript for user interface creation (think web pages, not web apps). A language that has first class data modelling capabilities[2].
I would love to hear your thoughts about it.
PS: apologies for the back button bug, I have created a full stack web framework: Realm[3], and it’s under a lot of flux right now.
[1]: https://www.youtube.com/watch?v=NYb2GDWMIm0