You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The decision that we will use a declarative language as a schema definition and generate everything, including C++, from there, as opposed to using C++ as a definition and generate a declarative language string from it, was made in #148
The obvious candidates are JSON and YAML. I really like TOML, but it's relatively obscure, so I'm not putting it forward here. Some thoughts
JSON
very easily accessible from every language
somewhat unpleasant to read as the excessive use of quotation marks clutters the visual space (though helpful visualizers exist)
even more unpleasant to edit/write manually (though helpful editor exist)
we can embrace JSON Schema and try to be fully or partially compatible with it. Even more external tooling will be available if we are
YAML
not every language has good parsers
I'd say that reading YAML is easier on the eyes than JSON
much more pleasant to manually edit
Allow both?
while this seems like a nice middle ground it will create too much noise and put strain on the tooling
Instead we should choose one and if someone really prefers the other, they should be responsible in integrating a JSON↔YAML converter in their toolchain
WIT? Protobuf? Something else? Good arguments need to be put forward for us to consider this
Note that the argument in "Allow both?" still applies here. If someone needs/likes, say protobuf, we can create tooling to generate .proto files from a schema
I'm leaning more towards JSON here, as it's (alas) the de facto standard for declarative data
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Language
The decision that we will use a declarative language as a schema definition and generate everything, including C++, from there, as opposed to using C++ as a definition and generate a declarative language string from it, was made in #148
The obvious candidates are JSON and YAML. I really like TOML, but it's relatively obscure, so I'm not putting it forward here. Some thoughts
I'm leaning more towards JSON here, as it's (alas) the de facto standard for declarative data
Beta Was this translation helpful? Give feedback.
All reactions