Language -> Objects or Objects -> Language
I’m interested in this idea of mapping thoughts to language and language to thoughts. I guess anyone who’s thought about how the mind works will naturally wonder along these lines. Does the language you know affect the ideas you’re able to communicate? This quote from the wikipedia entry on linguistic relativity seems to sum the question up nicely.
Philosophers also vary in the question of whether language is basically a tool for representing and referring to objects in the world, or whether it is a system used to construct mental representations of the world that can be shared and circulated between people.
There’s continuity between natural language and computer language enough that we can use linguistic theory to analyze the same idea in programming languages. Essentially, the question is whether the language you use determines how you write and reason about code.
- Is your thought process structured in a specific language?
- Are some languages more apt at certain problems than others? or is it the person weilding the language who determines the effectiveness.
Semantics and Idioms
In programming languages, a certain language may have the semantics that another language requires an idiom to achieve. This is the same as natural language in a way. Consider a Brazilian trying to explain the look of snow. It might take them a paragraph to do it, whereas an Eskimo would have 1 word to encapsulate the look accurately.
Two well known examples are these quotes by esr and Paul Graham (both referring to the benefits of using Lisp).
Eric Raymond
Lisp is worth learning for the profound enlightenment experience you will have when you finally get it; that experience will make you a better programmer for the rest of your days, even if you never actually use Lisp itself a lot.
Paul Graham
Languages less powerful than Blub are obviously less powerful. But when our hypothetical Blub programmer looks in the other direction, up the power continuum, he doesn’t realize he’s looking up. What he sees are merely weird languages. Blub is good enough for him, because he thinks in Blub.
If you’ve never read the Paul Graham post and need context, it’s here.
Paraphrasing a bit of La Rouchfoucald; “No one would fall in love if they hadn’t read about it.” This is an interesting idea. Relating this back to programming languages; if your language has no notion of recursion would it even exist in your mind? Is that a problem? Arguably yes.
One last quote from Ludwig Wittgenstein’s ‘Philosophical Investigations’ - “language is a form of life, not outside of it”
I’m still thinking about this question and I plan on revisiting this idea often because it seems to me the question “Do objects define a language or do languages define objects” is one which takes a lot of pondering to grasp.