What if it's important, for comprehension, that we...
# thinking-together
d
What if it's important, for comprehension, that we be able to speak programming languages not just write them.
👍 2
c
I suppose I'd it's important for comprehension, then the programming language environment might need to be more tolerant to potential error, right? For example if someone says "with each user online in slack, I want to ask them when their birthday is" I'd love for the computer to be able to help incrementally qualify that for us even if there are subtle "grammar fixes" that need to be applied. Then, programming with correct syntax would be a bit more similar to writing correct English with Grammarly.
🤔 1
w
Even for the professional programmer, a system that comes up with "but have you considered" questions could prove fairly useful. How many bugs are caused by odd interactions from otherwise fairly independent subsystems?
d
Though it would be interesting to consider talking to the computer and having it translate. I was thinking more about just a way to converse with other developers. The lack of humanity in the development process seems to lead to a lot of stress. People enjoy interacting with other people.
I do this now in clojure, but I'm curious if we developed shared rules around the speaking patterns.
d
This comes up a lot in mob programming. I'd love research in what gets named and if there are patterns for it. The GoF book also stresses the reason for naming the patterns and the follow up refactoring books use the new vocab with some additional verbs.
Also, programming languages hit the same areas in the brain as everyday languages... But the ambiguity restriction is very different (due to shared context)
c
Aha, indeed, I misunderstood the original idea. It's tough to be able to verbally communicate anything involving multiple actors (DB, Load balancer, Http endpoints; Text buffer, RegExp, validation messages; etc.) That's why when we can't communicate it by writing the code, I tend to try drawing it out and annotating with different levels of annotation. So, if we were communicating how notifications work, I would start by writing out the high level actors involved in sequence of a notification being sent. Then, I'd incrementally add notes for where our business requirements are applied. Then, I might show where the data is stored, etc. In this situation it is incredibly difficult to share knowledge only orally. It is far easier to write it out in a shared code editor, or through sending back and forth snippets, than it is to try to hold all the info in your brain as the conversation moves forward. In some of the most complex topics, my peers and I will actually write out the questions we're asking in comments in the shared editor, so we can encode each other's thoughts carefully to save time from having to repeat ourselves and losing context.
❤️ 1
It kinda sounds like as if a math teacher quizzed students orally without writing out the problem on the board. It would lead to too much repetition and clarifications, just so the student is able to write out the problem the teacher is asking...
❤️ 1
m
would be really interested to know if there is any MRI research looking at how much overlap there is in which parts of the brain "light up" when speaking/writing/read code vs natural language
g
i think @Cole is pointing at something important here, which is that the main affordance given by non-spoken language is asynchrony—being able to look at things in different orders, return to old topics, and read without listening or speaking. i think the idea of spoken language (and an interactive conversation) also probably have unexpected side benefits, but i’m struggling to think of them at the moment (probably because i don’t use spoken interfaces very often). the only one that comes to mind is that spoken interactions imply an awareness of context—think of how much more often you get to say things like “what’s this?” out loud rather than when you’re writing