The following in the comments thread of Kieran’s recent post over on Crooked Timber reminds me of an issue I’ve wondered about in the past. The comment exchange:

Do people think it’s worth learning R if you already use STATA*?
Probably in the general sense that it’s worth learning new languages or applications so as not to get too rusty.

I’m not sure whether Kieran meant to refer to computer languages here only or foreign languages as well. I remember reading generals requirements in some graduate program (perhaps my own, I don’t recall) that equated speaking a foreign language with being proficient in a programming language. I’d always found that to be curious. While I believe both are helpful and important skills to have, they seem to be sufficiently different not to equate. Foreign languages (and time spent in other countries) allow us to get to know cultures, histories, peoples in a way that is very difficult to do through translation. Knowing a programming language lends itself to other potential benefits.** The two hardly seem interchangeable. I’m just curious to know what other people think about this.

[*] It’s actually Stata not STATA, I’m not sure why so many people spell it with all caps. Same goes for the Pew Internet & American Life Project. It’s Pew, not PEW.

[**] Yes, yes, I can think of ways in which knowing a programming language might also help one get to expand one’s horizons on those other dimensions as well and feel free to offer entertaining scenarios, but my overall question still stands.:)

6 Responses to “Languages”

  1. Chris Says:

    Having been in both situations (new prog. langs. & new people langs.), I think that there’s a superficial similarity between both processes. In both cases, you’re building some general mental structures that are common between language instances that you can later hang the details on to. For example, it wasn’t until I studied Russian that the whole concept of cases and parts of speech really became visible and crystallized. When I abandoned Russian after three semesters to study Spanish, in a lot of instances, I was able to substitute Spanish versions of previously learned concept on the same structures I built learning Russian (Ñ‚Ñ‹ vs. тебя and tú vs. ti).

    Learning programming languages is similar in that you’re building a mental framework to hang other more concrete concepts. You may not catch it with your first programming language (the idea of a “while” loop may become internalized in a particular way), but once you have a contrast for comparison, then you really begin to understand the core concepts (e.g the fundamental idea of the “while” loop). I’ve been coding in a variety of imperative languages since high school, but learning LISP (a functional language) has been a useful contrast that has helped me get closer to the core of what it means to “program”.

    So, other than the similarity above, plus the phenomenon of language families (Slavic v. Romantic v. etc., imperative v. functional v. etc.), the two processes are really not that substitutable in my opinion. I doubt that learning people languages makes it easier to learn programming languages and vice versa. Both processes are certainly worthwhile and I wish I had more time for both.

  2. eszter Says:

    Thanks for those thoughts on this. I agree that learning one of either helps with learning more of either. However, as you mention toward the end, learning one doesn’t necessarily help with learning or even understanding the other type of language at all. That is, learning C+ isn’t really going to help you learn French just as learning Japenese isn’t really going to help you with Perl. So in that sense, it just doesn’t seem like they are substitutable.

  3. Molnar Says:

    Also, there’s the fact that you can learn a new programming language in a week (maybe not all the nuances, but well enough to get by), but spoken languages take much longer, and for good reason. The compiler breaks down every high-level computer language program into the same set of assembly language instructions that perform the same small set of basic logic functions: each language is just another user interface to drive the same Turing machine. Spoken languages are much richer, and have distinct logics. For example, there is no common logical basis between a language that has one second person singular pronoun and three third person singular pronouns and a language that has three second person singular pronouns and one third person singular pronoun.

  4. Alex Says:

    I may be talking out of my hat, here, since I believe I am the only one of my siblings that has no ability in Latin, Greek, or any other classical language, but… it always struck me that learning these languages seemed to bridge between computer languages and natural languages. Since you can’t really spend a lot of time chatting in these languages (a proposition with which some in my family would vehemently disagree), learning them seems to be largely an exercise in restructuring thinking patterns. For people who won’t spend a lot of time programming as a practical matter, learning how to program serves a similar purpose: providing a new tool for changing one’s perspective on a problem.

    At my undergraduate institution, computer programming was considered part of a “symbolic systems” requirement, and replaced courses in formal logic and discrete math. Most undergrads chose logic rather than programming then, but I suspect the case would be reversed today.

    As a practical matter, real languages are formal in only the least interesting ways. Yes, in order to make yourself understood, you have to be able to conjugate verbs, etc.. But how many native speakers really have a formal understanding of their own languages. I am a very poor speaker of languages other than English (and my English ain’t so hot either), but I suspect learning a language has a lot more in common with horseback riding or learning to tango than it does with formal logic. I learned far more Japanese in the first few months I lived there than all the time I spent in classroom in the US, though certainly the latter informed the former.

    (And not only is learning R good for the soul and worthy futureproofing, the ability to use R through Python — using RPy or other interfaces — makes it especially attractive.)

  5. biliana Says:

    I’ve never heard of equating speaking a foreign language and being proficient in a programming language, but I think it is an interesting idea. I never actually though about it until now. I can see why though. I think my approach to learning either foriegn language or a programming one is actually the same. I am always looking for structure – both in grammar and word formation. That is the easiest way for me to memorize anything. The same goes for programming languages – you need to learn the keywords and the syntax constructs – i.e. vocabulary and grammar. The difference between people’s languages and programming languages is that programming languages are much much simpler. They have very limited vocabulary and fairly limited grammar and they are very well structured, so they are far easier to learn. While you can learn a new programming language in a few days, you can’t really do the same with a spoken language. But I think the process of learning either can be the same at a high level (at least for me it is).

  6. Eric Says:

    Alex said:
    I suspect learning a language has a lot more in common with horseback riding or learning to tango than it does with formal logic

    perhaps in the respective ways that tango and formal logic are currently taught, I concur, the two are rather different. however, to a skilled professional, the act of doing either may be quite similar. most folks would say that there is a certain aesthetic sensibility to tango, and professional tango dancers would probably agree. however, while the same folks might not see any sort of aesthetic to formal logic, professional mathematicians or computer scientists or others who do this sort of stuff on a daily basis often work with it in a very intuitive manner, at times even developing a certain aesthetic sense for the formal structures of theorems, programs et cetera.

    tying back to computer languages vs human languages, I think the differences might be less in the languages themselves (previous comments about assembly code and Turing machines notwithstanding), but rather in the way that these languages are taught/learned and, moreover, conceptualized by those who use them.