I came across this interesting article about how some people still use Wordstar as a word processor. The two main points are that Wordstar is designed to be used entirely without moving your hands off the keyboard, and that Wordstar behaves more like the act of writing a document longhand than typing or retyping something in a page-based model. It delves into some really esoteric features, but the majority of the features the author mentioned were things that I remembered fondly.
Wordstar 2000 was my first word processor, and it was the foundation that made it easier for me to grasp semantic markup like HTML when I met it later. If you wanted to bold something, you did it without switching mental contexts, you just typed a command that would make things bold until you turned it off again. There wasn’t a mouse (the “2000” was aspirational, not descriptive). There wasn’t much of a visible menu, there was just you and the black screen and the blinking green cursor. That idea of inline formatting stayed with me.
There’s a linguistic theory called the Sapir-Whorf hypothesis that says the way we think is influenced by our language. Our linguistic pathways make it harder or easier for us to think in a certain way. I think that’s certainly true of software that we encounter at formative stages. For me, Wordstar taught me to separate the content of my writing from the formatting of the output. Now we call that writing with semantic markup or sometimes just semantic writing (which is a deplorably broad, fuzzy phrase). My formative computing and writing happened at the same time, at the end of the typewriter era (I learned to type on a typewriter) and the dawn of the visual web. I think it gives me a distinctive quirk to the way I think of text, and writing, and all the intersections thereof.
Sarah Mei recently posted that even if Ruby did not survive as an intact language, it would influence a generation of people who think about code, the way Smalltalk influenced the generation who started originating the ideas for Agile. I loved that idea, and it made me think of the ways that academia has to trace lines of influence and inheritance of ideas. I started out as an English lit major, and we are super into “the marxist reading of Frankenstein” and who Mary Shelley had read and would be influenced by, and so on. It’s a habit we don’t have as much in technology, I think. We tend to treat ideas we adopt and raise as if they were entirely our own, and we either deliberately or accidentally strip them of context and heritage.
I think about that tendency when I rewrite something, and when I leave a project. Because I do work-for-hire writing, there is almost no expectation of attribution. I come in, take whatever text there is, rework it to serve the needs that I can see or have been told of, and then move on. But in some hypothetical state where software could track all my works, I wonder if you could see the places where I learned task-based writing, where I played with and mostly-discarded DITA, where I was working from story cards or working from interfaces. Academics keep track of all the things they write for publication. I have LinkedIn because I literally have no idea who I’ve worked for without a reminder.
The thing about the Sapir-Whorf hypothesis that I find extra fascinating is that if you really and truly learn an additional language, you can remap or add onto your thought paths, identify colors that don’t exist in the original language*, construct ideas that just don’t work in your original language, all sorts of magical thinking. Learning an entire human language is daunting, but any language we learn, any concept we internalize can rewire us to an extent. I have probably…. 8 distinct registers for writing, and each of them is deliberately learned and curated. Every time I add a new one, I can see places that it would have been handy to think this way on past assignments.
What does all that have to do with my first word-processor? It makes me honor how different pieces of software “think”, what their paradigm is, and how I can write in a way that keeps that intact. For example, this week I learned something vital about YAML files ( I think). I was having a terrible time getting an indented TOC to work, and the error message was just this side of useless. I took a break to do some sewing, and reminded myself that the curves have to match on the sewing line, not the edge of the fabric, the edge of the fabric is not important. When I came back to the accursed YAML file, I figured out that the indentation is not based on how many spaces you are in from the line start, but that your indentation marker is directly below the first letter of its container. That changes the whole paradigm. The program is not counting spaces, it’s counting the first meaningful character on a line. If I get this into my head well enough, the next time I meet something like that, I will know to check my assumptions on which part needs to match.
What about you? What languages have shaped how you think and work? What paradigms do you use every day?
* I used to think that the men I knew didn’t care enough about colors to identify them correctly, and were therefore being lazy to say “blue” for both “teal” and “cobalt”. Then I realized that a) some of them are colorblind and may not even know it b) they are discouraged from or never taught the extensive color names that are practical and useful for someone who dresses as a woman. If you tell me a sweater is plum and it shows up eggplant, I’m annoyed, because those are different colors to me, and I was planning on one of them.
It makes me wonder how many things I’m lazy about identifying because I don’t care or I’m socialized not to make the effort. Like, um, baseball positions or birds or knots. I can learn them if I care, but I don’t right now, so it’s all “small brown bird” and “knot around things”.
O'Reilly Software Architecture/Velocity
The Lead Developer London