Translation is Good for You
Years ago, I helped a software team design and implement a migration to replace the backend of a large web application. We did this by changing the implementation of the module responsible for making requests to the backend — the rest service. Instead of making requests to the existing backend, we modified the rest service to make requests to our new backend instead.
The Problem
There was a problem: the new backend spoke a different language than the old one. Our solution? You guessed it: translation. We implemented a protocol translator that translated each request and response from the old backend's language to the new backend's language. This trick allowed us to complete the migration much faster then the alternative: re-writing every piece of code in the system that made a request.
However, after we completed the migration project, something nagged at me: instead of one protocol, now we had two. This makes the system more complex and confusing for newcomers to learn. I argued that we should gradually rewrite all our request code to talk in the new protocol so that eventually we end up with only one language. One language would reduce the cognitive load of using the system and eliminate the need for a programmer to translate from one language to another when they are debugging an issue. One language to rule them all.
New Perspective
While I still partially agree with the assessment of my former self, I now have a more positive view of translation. I no longer think that translation is something we should always eliminate. In fact, I've realized that there are big benefits to translation, as my title hinted.
First I shall make clear what I mean by translation. Translation means taking something t that lives in some context A, and then mapping it to something new t' that mirrors t but fits comfortably in a different context B. Here are some examples:
- translating a song lyric from Portugese to English
- translating a Python program to a Go program
- translating an XML configuration file to YAML
- translating a SQL statement to a LINQ statement (or pick your ORM)
- translating a C program to assembly (or vice versa)
- translating a map coloring problem to a graph problem
- translating a set theory problem to a generating function problem
- translating from doing averages in Excel to doing it in Google Spreadsheets
- translating spoken English to Chinese
- analogizing the plot of one movie to that of another
- analogizing a book or movie to experiences you had in your own life
- using the technique in one math solution to solve another math problem
I hope you get the idea.
Benefits of Translation
There are two benefits of doing translation work:
- It forces you to learn something deeper.
- It provides proof of understanding.
For example, if my children can calculate the distance we've traveled in the car by reading the speedometer, counting seconds out loud and doing some mental calculation, that's huge! That means they have translated a classroom skill successfully to a different context: real life.
If you show me that you translated a Python program to Go, I know you've had to learn both languages and understand the similarities and differences between them. In addition to that, you must know the program itself very well, because you will have had to read it in its entirety and diagnose it numerous times when it failed to work. All of this would require a lot of mental translation and hands-on work, all the more proof you understand how the damned thing works.
Connections to Bilingualism
The act of translation is slow, at least for humans. If you want an engineer to be able to get their work done quickly, having multiple languages they have to translate between is probably not a good idea. But the act of translation is a good way to learn something deeply. Maybe there's a silver lining here. What if the translation work the engineer is having to do daily is rewarding them by teaching them to understand better the systems they work with?
While I don't know if the above hypothesis is correct, we do have some evidence from studies in the field of neurobiology concerning bilingual brains as compared to monolingual brains. This article in the Nature Magazine says that adult bilingual individuals have more and denser grey matter in their brains compared to monolingual individuals. What does that mean exactly? Scientists are hesitant to say more grey matter is better, but grey matter seems to play a role in growth and learning. Furthermore, high alcohol consumption has been shown to reduce grey matter in our brains.
Another study concluded that bilingual dementia patients on averaged developed dementia symptons 4.5 years later than monolingual patients. This suggests that perhaps people who are bilingual exercise their brains more and therefore stave off dementia for longer.
Parting Words
Doing translation work is slow and tedious, but precisely because it's slow and tedious, it is good exercise for the brain. Why do people do physical exercise? Why not mental exercise?