5 ms·
XML has been around for long enough that a lot of people have developed a tacit understanding of it, it's not reasonable in all cases (I once went to war with a
by yarg 3y ago
XML has been around for long enough that a lot of people have developed a tacit understanding of it, it's not reasonable in all cases (I once went to war with an 8000 line build.xml file - fuck everything about that), but for simple cases it's an easy to parse hierarchical format that most people who need to can get a handle on.
But there's one vestigial artefact that irks me.
<tree>
<leaf colour="green"/>
<leaf colour="yellow"/>
</tree>
Why can't I just do this? Validation and highlighting are well past the point where it should be a viable option.
<tree>
<leaf colour="green"/>
<leaf colour="yellow"/>
</>
- tomgp 3y agoI’m not sure, but possible legibility? Like if you have a bunch of nested nodes it’s nice to be able to see where one ends at a glance.
- yarg 3y agoDecent indenting generally helps there (and siblings are often of the same type anyway, in which case it doesn't improve indistinguishability). Beyond that syntax highlighting and marcation of the head and tail of the currently selected tree can improve things when you're manually editing a document.
- MawKKe 3y agowhy not go further, why can't we just write <tree <leaf colour="green"> <leaf colour="yellow"> > although now that ="foo" business seems too noisy. how about <tree <leaf :colour green> <leaf :colour yellow> > also, those angle brackets are too pointy, let's swap them to something more pleasant (tree (leaf :colour green) (leaf :colour yellow))
- yarg 3y agoThe change I suggested is backwards compatible - probably a relatively small change to a single method in parsing. You, on the other hand, took the pre-existing syntax and contemptuously threw it out the window - and completely ignored the advantage of widespread tacit understanding.
- throwaway744678 3y agoDon't sweat it, it was a joke (turning your sample into LISP)
- yarg 3y agoSorry, I haven't spent any time with LISP. I do however want to write a dialect of it, though mostly for the sake of naming it 'Lithp'.
- bad_login 3y agoHere is the racket view of xml https://docs.racket-lang.org/sxml/SXML.html https://docs.racket-lang.org/sxml/SXML.html more examples: https://docs.racket-lang.org/sxml/ssax.html https://docs.racket-lang.org/sxml/ssax.html and then you can manipulate your sxml with https://docs.racket-lang.org/reference/match.html https://docs.racket-lang.org/reference/match.html
- lionkor 3y agoi dont have eyes so id prefer enum Color { green, yellow }; struct Leaf { Color color; }; std::vector<Leaf> tree = { { .color = green }, { .color = yellow }, }; which has the benefit of requiring a massive compiler suite, a specific language version, but it compiles to 0 bytes because it's not used (how great!!)
- HelloNurse 3y agoSimplification from SGML was a core design objective for XML, and this kind of fairly harmless syntax options was mostly exterminated as a cognitive and implementation cost.