4 ms·
> And if you accept that, having special syntax for arrays and maps is more convenient and readable than S-exprs. S-expressions are arrays, and maps are really
by eadmund 5y ago
> And if you accept that, having special syntax for arrays and maps is more convenient and readable than S-exprs.
S-expressions are arrays, and maps are really just degenerate unsorted arrays of key-value pairs. Taking a look at https://json.org/example.html https://json.org/example.html, I think this is easily more readable:
(menu
(id file)
(value File)
(popup
(item (value New) (onclick "CreateNewDoc()"))
(item (value Open) (onclick "OpenDoc"))
(item (value Close) (onclick "CloseDoc()"))))
than:
{"menu": {
"id": "file",
"value": "File",
"popup": {
"menuitem": [
{"value": "New", "onclick": "CreateNewDoc()"},
{"value": "Open", "onclick": "OpenDoc()"},
{"value": "Close", "onclick": "CloseDoc()"}
]
}
}}
- iainmerrick 5y agoEach to their own! A big part of the difference is that all the JSON keys are quoted, which I agree is ugly (I like JSON5 myself). You’ve also omitted the “menuitem” from the S-expr version. That could have been omitted from the JSON too but I assume it’s meant to be there for some good reason.