I haven't seen anybody mentioning it or even noticing it, like it's just the water we swim in now, but this month marks the fiftieth anniversary of the release of what would become a seminal, and is arguably the single most important, piece of social software ever created.

Written by Douglas McIlroy and James Hunt and released with the 5th Edition of Unix this month in 1974: diff.

https://minnie.tuhs.org/cgi-bin/utree.pl?file=V5/usr/source/s1/diff1.c

My friend @gvwilson has argued, and I am absolutely ready to believe, that you can divide the entire computational universe into "has diff and patch or doesn't", and that people living without it don't even have the language to recognize how bad they've got it, how many opportunities to share and collaborate have been silently denied them.

Word processors, spreadsheets, slides? "Track changes" is _trash_ by comparison. No programmer would consent to live the way we make office workers live.

@mhoye @gvwilson that's a bit of a "say you've never worked with legal documents without ever saying ..." admission. Line-based diffs might be okay for code, but are no use for contracts.
@scruss @gvwilson I don't buy that; any diff/patch pair is necessarily domain dependent, not necessarily wire-format dependent. There's no reason "contract diff" and "contract patch" couldn't understand the necessities of contracts vs bare text.
@mhoye @scruss apologies if I'm mis-remembering a long-ago lecture, but I believe the ability to report semantically meaningful changes was one of the motivations for development of GML (the predecessor of SGML). I have seen people pull up contract changes in Lexis Nexis, which I believe uses some derivative of SGML as a storage format (?).
@mhoye @scruss @gvwilson The history section of the Wikipedia article on SGML makes the same comment. One of my first paid programming jobs was to make use of an undocumented SGML parser that was also buggy. That was a hard summer