New blogpost: Programming Resolutions for 2024
Re:(5) New blogpost: Programming Resolutions for 2024
@Lady I agree about the significance of transformations, but I don't think XML is necessarily necessary for this -- I think there is simply a major ideological/tooling hole here that XML is merely (at present) the only ecosystem with SOMETHING in. (Well, also RDF.)
I think we just, as a programming culture, have SEVERELY underdeveloped the concept of "bidirectional/invertable transformations".
(And its sister-concept of "explicitly-lossy transformations", that label the areas where it loses information.)
Like, in a tree-/graph-format as well, but also even in regular expressions -- there is no current defined syntax for expressing an invertable regex substution, /despite that being literally a simple subset of regex syntax/.
Much less the obvious (and simple but powerful) corrolary, a way to translate that "invertable regex substution" into its inverse, to get free translation to and from.
Re:(5) New blogpost: Programming Resolutions for 2024
@gaditb the significance of XML to me is the fact that it is fairly trivially convertible to HTML (or styleable with CSS directly) [or turn it into SILE if that's your fancy]
this is a practical concern not a technological one; the most portable formats for display are XML, and if that’s your destination format, it seems helpful to maintain that as far up the chain as you can
otherwise, surely they’ve developed something in the Lisp universe for this, right? isn’t that kind of the whole point?
Re:(5) New blogpost: Programming Resolutions for 2024
@Lady It's the "it seems helpful to maintain that as far up the chain as you can" that I disagree with -- the chain should rather be INVERTABLY TRANSFORMABLE to that (XML is a good framework target for that), but there are reasons to have different representations for different levels and contexts.
The key thing here I'm thinking is that with invertable translations, different translations become different, equally-manipulable, VIEWS of the underlying data. And different views are useful for different types of manipulation. (WYSI*-frameworks compare in this way.)
Like, approaching an unknown format, it's most useful to have access to a verbose, context-embedding view, to be able to grasp the structure in many places. OTOH, for INPUTTING, and also engaging with familiar data, you want as much context-inference as possible.
For diffing, you want a view that most effectively writes one/a few (annotatable) semantic unit(s) per line.