“Oh, we want to adopt best practices like gitflow”...
# thinking-together
d
“Oh, we want to adopt best practices like gitflow”. (Now I feel extremely depressed.) These guys can’t imagine version controlling based on semantic features of the code - it’s all done with diffs of lines in a Unix-style filesystem like we’re in the 1970's. No progress is possible, and we definately haven’t heard of Envy/Developer.
s
There are some ideas that today are 'large departures' from some other deeply entrenched ideas. The ecosystem kind of dictates where evolution occurs and some aspects seem to be locked down. So if you have a new plain text language, it fits right in with all the other things but if you have some other way you're isolated because none of the existing tools will work with it. Progress from deeper shifts is possible I suppose but it's hard to make happen at places already invested in the existing ways of doing things. However something compelling could start small and slowly grow mindshare and ecosystem over time. That's my hope anyway.
👍 2
d
We had a problem like that in the UK - when Brunel laid his railway it was a wider gauge than the other companies. Apparently, he had to relay it with narrow gauge… and we’re still having railway maintenance problems.
k
I'd like to reinforce @shalabh's point because so many here seem to overlook it. Plain text is so extremely successful because it has inherited thousands of years of writing technology. And it's used for so much more than just programming. Hypothesis: we'll see a surge in semantic editing when it becomes available for plain language as well. Word processors could offer refactoring ("remove passive voice") as much as software editors. And then we'd start to consider it normal.
👍 1
d
The problem is that “plain text” isn’t that old - and it’s more of a problem outside the English-speaking world. What exactly is plain anyway? No accents? Which subset of math symbols and punctuation will do?
If “plain text” is 20th century 7-bit “US-ascii” I’d say it’s a pretty modern thing. Just being able to use unicode symbols in scala was a step forward.
k
Plain text is sequences of characters. Today that means Unicode.
d
… true but I think the English-speaking world doesn’t realise how much accent-dropping and mangling happens even with Latin-based alphabets.
s
'Text' is very broad. I try to distinguish 'plain text file based programming' from 'text in programming'. Text is programming seems fine - you want to write formulae, queries, labels, names, other snippets etc. But consider how spreadsheets, subtext, notebooks/observablehq, smalltalk etc don't just fit into the mainstream software dev ecosystem even though they feature plenty of text.
I've recently been thinking in terms of 'correspondence' and find it useful to think about the strength of models. E.g. plain text has a very strong correspondence between the display model and storage model (linear, 1-to-1, with some special markers like newlines). Nothing is hidden. It also has a strong correspondence with the input method: keyboard, often 1 key -> 1 char (but not always). If I see a picture of some code anywhere, I know instantly how to recreate it 'precisely'. Can't do that with a vector diagram or a spreadsheet. Also the standard storage operations (read/write) give me exactly the same elements (chars) that correspond directly with ~keys and visual cells. This is the appeal of plain text files. Where it falls short is when I seek stronger correspondence to other models represented in the plain text (e.g. AST or some other structure, inter links, etc.). Now there's parsing and file formats involved, a lot of duplication of logic across different readers that interpret the text, false versioniong (text versioning != ast versioning) and so on.
💯 2