Are Programming Languages Really Languages

Computer Science Teacher
Computer Science Teacher - Thoughts and Information from Alfred Thompson

Are Programming Languages Really Languages

  • Comments 21

Every so often someone suggests, sometimes in jest and some times in all seriousness, that programming languages “count” as a language for meeting graduation or degree requirements. According to Ian Bogost, who is not happy about it, some schools are actually doing this and others are close to it. (Computers are Systems, not Languages)

Is this a good idea? I think it largely depends on what you see as the value in learning a language other than your own native language. As someone who struggled his whole academic career with languages (first year French twice, First year German three times) I’m not so sure that language learning the way we do it in US is much good. Very few really become fluent enough to have more than the most casual of conversations (any one have evidence to the contrary?)  One reason I often heard for learning a foreign language (the politically correct term is world language I think) is that it gives one a better understanding of the culture of the countries where it is spoken. I guess that is true to some extent. Although with our “flat world” is it as necessary as it was a generation or two ago? Arguable. Isn’t the world of computers a culture though? Perhaps learning to program helps people, especially in the humanities, some insights into that “other” culture?

Another reason I have heard is so that one can read research and other works in the original language. Perhaps that made a lot of sense when French and German were the principal languages of some areas of study. But today people write in far too many languages to make focusing on one make for a solid argument – well unless that language is English. An awful lot is written first in English even by people whose first language is not English. On the other hand there may be some value in being able to read code in the “original” language. It’s a theory. And fortunately computer languages are often enough alike that learning one or two is enough to have a reading familiarity with others.

Does learning a different language help one understand their own language better? That seems a stronger argument than some others. There is no close corollary to this with programming languages with the possible exception of COBOL. Smile 

So am I arguing that programming languages should take the place of natural languages as general education requirements. Not really. I’m sort of asking why we have learning natural languages as a requirement. Sacrilege of course but why not? I do think that more people should take some programing or other real computer science course though. It is part of being a fully educated person in the 21st century.

  • Bazinga!

  • What kind of rambling nonsense are you posting here? Are you still in high school?

  • Interesting article.

    I'm a french geek speaking French, English, learning Chinese and remembering bits of German and Breton.

    I also "speak" countless programming languages (Java, C++, Javascript,..., and even Z80 assembler when I was a kid).

    learning a human language is so much more enlightening than a computer language to me!

    I love programming and I keep learning new programming languages but I don't get as excited as when I'm studying Chinese for instance.

    Talking to people in their native language is pretty much different than "talking" to a computer in a programming language.

    I used to work with Americans, and indeed they had learnt bits of english at shchool but were merely able to say "hello" (Bonjour).

  • Americans are just too lazy to learn other languages. Thats all.

  • I did 5yr Spanish, 2yr French & 1yr Italian 7th-12th grade, plus English. I didn't get good at it until I worked with illegal aliens, who taught me how to speak properly, and also all the colorful language; much more fun than school. I then taught myself basic, pascal, C/C++, Intel & Motorola assembler, SQL, some IBM protocols, VC++, VB, dhtml, javascript, xml, C#, and ActionScript in various contexts, and  recently Objective C, plus administration of Microsoft, Novell, Linux & Apple platforms & server apps. In the last few years I picked up some Japanese & Chinese and hope to find time to learn Chinese well, but I haven't gotten to it. Maybe its because I work til June to pay my tax burden, maybe its because I work and study 80+ hours a week to stay employed, maybe its because I didn't marry a rich one or get a silver spoon at my coming out party, but I like to think its because I need a hot Taiwanese gf to truly motivate me. I have never considered myself lazy and neither has anyone who knows me, though I do make tree huggers nervous. After I got away from my evil foster parents, I have always, always enjoyed being me. Use of cliches & stereotypes implies a lazy mind, or at least a well indoctrinated specimen. If I ever find time to go to college they'll waive the language requirement, but only because of the languages in high school; its the only ivory tower crap on my record. Peace.

  • For an article discussing languages, you would have thought that it would at least be readable.

  • When I was a child I knew Bulgarian perfectly, so much so that native Bulgarians thought I was from Sofia. Then I grew up and now I hardly understand anything. At first I was stumped and presumed some sort of brain damage, but then I realized that learning while a child is very different in brain structure that learning as an adult. Now I have enormous trouble learning a new language, compared to understanding basic German after three months of watching Star Trek on Sat1 when I was a child, but still am way better than people who never tried.

    And to make the seamless transition back on programming languages: is there any wide-spread computer language not designed by anglo/germanic folk?

    I believe that learning different programming paradigms is very good for a programmer. More than once my eyes got open by working with PHP, Access or Javascript (I am a C# programmer) and the various libraries for these languages.

    I guess it all boils down to this: how can you write a book if you don't read any?

  • Maybe the world is to flat for Americans ?

  • Ever heard of the Chomsky Hierarchy? This is what computer languages are about. Note the terminology in the article linked above: computer languages are *formal* languages.

    You can try to compare natural languages to formal languages by looking at the Chomsky hierarchy, but you will find that natural languages can usually only be found at the type 1 range or maybe even type 0. Latin, as a very formal language with strict grammatical rules, might be the closest a natural language ever came to type 2. Esparanto might be even closer, but I know almost nothing of it, and anyway, it's a constructed language, not one that developed naturally. So it is by it's nature much closer to programming languages.

    Formal languages have been created because computers are very bad at understanding type 1 grammar (or worse). So it comes as no surprise that most computer languages are of type 2. And that is the main dfference to natural languages.

    You might learn a bit from a programming language, if you are not very familiar with the language its keywords are based on - provided it has such keywords. But otherwise, they are just artificially created languages that serve a particular purpose, i. e. expressing algorithms in a way that the computer can interpret and execute.

    That said - IMHO an even bigger difference between a formal language and natural languages is body language! You can write down a program, or read it aloud, and it will mean exactly the same. But if you say something in a natural language - depending on your gestures and facial expression - you can make the same words mean something entirely different!

  • Google "Program or Be Programmed" and watch the video (not done by me).

  • I can speak to this from both sides. I'm fluent in Spanish from several years overseas. I have an M.A. in Linguistics/Teaching English as a Second Language and then ten years experience teaching ESL at the university level. Then a degree in computer programming and now 11 years experience in that (working with voice telephony applications).

    Comparing computer languages to human languages in like comparing a bicycle (and learning to ride one) to an automobile (and learning drive one). The second is far more complex and learning to ride a bicycle is not even close to being on the same level. On the other hand, there are some things about the bicycle that don't apply to the car - you don't need a good sense of balance to drive a car. Still, there are some parallels that if you learn one it will give you a heads up on the other: stop an intersections and look both ways, have headlights at night, etc.

    To claim that learning one or more computer languages is equivalent to learning a human language is ludicrous. There's a reason kids ride bicycles and don't drive cars. Computer languages would make a better substitute for taking logic/philosophy classes.

    As to studying languages, the way we typically teach them in the USA is pointless. If we're serious (and we should be) about competing in the world, we need to start with human languages at a young age and do it intensively, as is done just about everywhere else in the world. Aside from the cross-cultural benefits, learning another language teaches you to look at things differently. For one simple example, Spanish has two words for "corner" - one for an an inside corner (e.g. corner of the room) and one for an outside corner (corner of a table or a street corner). A monolingual English speaker might never think of this distinction. Understanding how to see the world from different points of view is key to competing in the global economy. Unfortunately, native-born Americans are falling way behind at this, although I have hopes that the children of our immigrants will hold us up.

  • Like foreign language students, very few programming students in the U.S. develop any useful skills.

  • Learning a language improves the mind.  Learning a language in an american school or college however is a waste of time. I would suggest mandatory year in foreign language speaking country at age thirteen for all.

  • I think we need to concentrate on teaching thinking and thinking skills - and how the various languages are tools for that. I see as much value in becoming proficient in music and music theory as becoming a fluent reader, writer and speaker of a foreign language. There is as much learning about math and handling symbolic logic as how to write a persuasive essay or a program to calulate a fibonacci sequence.

    I see kids going through school with the thinking and reasoning skills of rocks. They have no curiousity, no ability to formulate questions and not much ability to concentrate or think deeply. Society and our school system is failing in this regard, whether they get 1 year of language or three.

  • Learning another language definitely seems to improve the undersanding & usage of a person's native language.

    This is very obvious in programming languages & bridge bidding systems. I started with assembly language & COBOL, later learning ALGOL, PL/1, Basic, & a few others. My COBOL code improved after learning ALGOL, whihc is nothing like the original COBOL language (Modern COBOL has added some syntax suggestive of ALGOL).

    Most people do no realize that bridge bidding systems are languages. When I learned Kaplan/Sheinwold & Precision (to accomodate partners), I did better with Standard American.

    BTW: Bridge has 38 words & simple syntax, but provides quite a bit of semantic content. There are more bidding sequences (approx. 10^47)than ways to deal a deck to 4 players (approx. 10^28).

Page 1 of 2 (21 items) 12