Programming, Languages, and Hacking the Way We Think
Programming, Languages, and Hacking the Way We Think
Last night I read a wonderful article about programming languages. It opened with a quote:
A language that doesn’t affect the way you think about programming is not worth knowing.
-Alan Perlis
After a few minutes of thinking about it, I changed the quote to read:
A language that doesn't change the way you think is not worth knowing.
I don't think in Ruby. Or Perl. Or Python. I certainly don't think in any of the C derivatives. I think in English. Even when I program I put a series of nouns, verbs and adjectives together to form sentences that the computer will be able to interpret and compile into byte code.
What does it mean to be an English thinker? What effect does the language and its syntax have on me? Does English have more strong verbs than Eastern languages? Does that have some effect on my thought processes compared to say, a native Japanese speaker? What about other languages, programming or otherwise? If I learned Italian well enough to think in it, would it fundamentally change the way I think?
What about structure? Does the structure of a human language change the way we think like the structure of a programming language does? Perhaps I find that I can more eloquently express myself in Mandarin than in English on the topic of art, or that I prefer the conciseness of German when trying to explain mathematical concepts. What about taking human languages and learning them to change the way I think about a subject, just as I would mix and match programming languages depending on their utility.
Could I boil a human language down to the extent that I could say with confidence "The best language for describing training exercises to an athlete is Russian"?
I have a proposition: Learn a new spoken language. Learn it well enough to think in that language. Understand and document the way that thinking in the new language changes the way you think. Perhaps it's looking at verb order and what verb order means to people who reverse verbs and their objects? Perhaps it's looking at the use of adjectives, and what it does to the way you mentally describe things?
I could see this turning into a study of some sort.
When programming, you're looking for a balance of conciseness, eloquency and maintainability when you choose your "words". If we could do the same with human language, putting a different language into use dependent on the situation, could we maximize our potential as thinkers and by proxy, communicators?