Guy Reams (00:01.038)
This is day 297, the capacity of language. This topic could be an entire book that I should write. It has been one of the more fascinating topics that has captured my attention even at a young age. I have a theory that the language you know, the words that you know, restrict your capacity for thought. A less sophisticated language would reduce your capacity for thinking in more complex terms.
An advanced society, therefore, must have an advanced language to handle the complex thinking required to thrive in that particular society. It seems that for software developers to handle more complex systems, they needed a language for this purpose. Ivar Jacobson seems to have been one of the first to conceive of this idea, that there needed to be a rational way to capture user needs in a way that could be developed with modern object-oriented programming.
When I was first teaching computer science in the mid 1990s, Jacobson and the other three amigos had just united under the company called Rational Software. And out of that exercise, they produced a new language for modeling software for object oriented design called UML. This is where I started to recognize that software development would not improve unless there were new ways to model, represent, and discuss complex requirements.
The question to ponder from this example is how important is language in the effectiveness of a team of people, a community, or a society? Later, I would start to understand that this was a working theory in cognitive science and therefore had relevance to the same problem space the computer scientists like Jacobson were trying to tackle. Languages and notations we use do not just express thought, they shape it.
This is certainly demonstrated in the explosive growth that object-oriented design had once we had the language to talk about it. Nowadays, when you say the phrase use case, even non-computer science people will recognize the idea that we need to write software from the perspective of the user. It seems obvious now, but there was a time when this was not obvious at all, and the language we used to write software did not reflect this either.
Guy Reams (02:26.767)
In cognitive science, this is the weak sapper wharf view or what is called linguistic relativity. And in computer interaction, what we call HCI, we see it as the way notations and models scaffold cognition. Now in the year 2025, we are rapidly heading down a path where there is going to be a new language formed so that we can understand how to extrapolate the use cases that not only involve humans, but
thinking machines as well. If you stop to think about this for a moment, you will realize how true this concept actually is. Natural language sets the ceiling on what we can say easily. Richer vocabularies make distinctions thinkable. A culture like mine is obsessed with time. We have many words for a variety of nuances regarding time which allows me to focus on the minutiae, literally.
Another culture may have no way to even conceive of this, and any attempt to discuss hours, minutes, and seconds would be futile. This is also true of technical notation. You probably don't even notice how certain technical notation has crept into your life and how symbols and ways of representing the state of things are presented to you every day. These are important because technical notation, like diagrams, schemas, specifications,
They're tools that extend working memory and allow us to see problems that we might not have been able to see before we have the ability to parse via the use of a notation. I will use a couple of examples just to prove this point. What is the symbol for play, pause, stop, and fast forward? I bet you can put them into your mind right now. When you see a device that plays sound or video, you will instantly recognize these universal symbols.
You can even troubleshoot what is wrong with the media player by seeing what state these various options are in. I'm old enough to remember when certain protocols were first invented. Things like DNS or domain name system and the TCP IP protocol stack were completely foreign when they came out. Interestingly enough, if you talk to a small child today about a dot com or an IP address, they would know what they would probably know what you were talking about.
Guy Reams (04:49.699)
It is quite amazing when you think about the evolution of social media symbols and the usage of certain characters, for example, the at sign, the hashtag sign, and even the backslash as the universal separator. These have all become widely understood by most people. Because our society now knows and understands these notations, it supports the idea that distributed cognition extends the mind.
and with better representational systems, are uniquely better at problem solving. There have been many social experiments regarding this influence of language on human thought. Some scientists have been more deterministic in their view, taking a more hard line to concept that your thoughts are actually confined to what language you can express. A small child, for example, is able to think, but the thoughts are extremely basic and primal,
until they learn words that allow them to think in more abstract terms, recognizing, for example, that something that is not here may at some point return. The theory would be that if there is no word to describe something, you really cannot think it. This is rejected by many, but it does create some food for thought, pun intended. Some studies have demonstrated that people born into cultures that have words for certain color shades are more likely to distinguish that color
that a speaker from a culture that does not have a word for that shade. For example, a Russian might be able to easily distinguish between light blue and dark blue because they have unique and distinct words for those concepts. This has also been demonstrated in spatial orientation, where a culture can easily identify north and south rather than Americans who just know left and right. I bring this up because in my world, before the use cases and UML,
Developers could still imagine user-centered system behavior, but they lacked a shared precise vocabulary to express it consistently. Once the notation existed, it channeled thinking towards certain kinds of analysis, making complex system design more tractable for large teams. In this case, since Jacobson came out with this idea of user-centered design in 1987, there has been a remarkable transformation in the world of computer science.
Guy Reams (07:10.627)
This example from my career emphasizes that when you are existing in a team or a group of people, there is necessity for ceremony. When you dedicate time for ceremony, you are bridging shared language and shared representation between that group. When you do this, you are adding cognitive power. Maybe not at the groundbreaking level Jacobson did with the creation of use case, but enough to get your team on the same page to use the common expression.
The trick is to match language power to problem criticality. More formality where risk is high and lighter where discovery and exploration are needed. Richer, more complex language does not necessarily lead to clearer thinking. Too many rules can create friction in a team. When Jacobson first created the use case, it was nothing more than a paragraph with a diagram of a stick figure and an oval.
As the community focused on this way of thinking, more formality started to present itself. Eventually, the agile development community would emerge in computer science to start formalizing ceremony, or actually events that brought people together so they could share and experience this phenomenon of shared language. I bring this up because we all work in teams of people. This is how humans have survived and thrive for as long as we have.
We take our shared language for granted, but every word we speak has a history and an evolution of creating shared meaning between us all. If language can indeed be this powerful of an influence on cognitive and on the software development world, then perhaps we should spend time pondering the shared language we use in our families, on our teams at work, and in our neighborhoods and communities. I think if I were to end with something, it would be this concept.
Language and the ceremonies that we establish to reinforce language are important. Ignore this at the peril of being dysfunctional. Embrace this and learn what true capability is on a team of humans who have the same shared goal.