The Linguistics of Programming
Posted on 16/9/08 by Felix Geisendörfer
Hey folks,
this is post #27 of my 30 day challenge.
When we think about programming languages, we often times think of them in terms of features, limitations, performance, syntax and other aspects.
Being asked how many "languages" we speak we might joke around, saying half a dozen not including a bunch of dialects of basic.
But really? How often do you really think of your programming languages just as you would of human languages? Lately I've been given the concept a lot more thought. And it is quite surprising how many parallels you can find.
It probably all started with the idea of having a dictionary for computer languages. For human languages we are very much used to the concept of using a dictionary that translates between a language we already know and the new language we want to learn. Why doesn't there seem to be books or sites out there that pick up on the idea for computer languages?
I mean, somebody's previous language skills seem to be just such an important aspect when learning a new language. Depending on the vocabulary (commands), syntax (~alphabet), grammar, philosophy (history) and features (expressions / idioms / constructs) people just come in with all kinds of assumptions when learning a new language. How can this be ignored in all of the learning material out there?
A follow up to this post will come tomorrow, but meanwhile I'd like to hear a little from you guys and what concepts you think are important in the human / computer language comparison.
-- Felix Geisendörfer aka the_undefined