Sunday, December 12, 2004


After work late last Tuesday, three of us found the nearest bar, ordered "beer" (though the Tetley's tasted suspiciously good - I must have been thirsty), and had an interesting exchange about the similarities and differences between human and computer languages; how the study of one can lead to a greater understanding of the other.

English has no word equivilent to si in French or doch in German. For the two guys there (one French, one German), this feels very odd. What do we say for the emphatic "yes"? "On the contrary, I maintain it is true!". Not particularly neat, huh?

In contrast, Python has no indexed for construct; one must iterate over a series of objects. At first, this seems strange, but, released from the confines of (int i=0; i<max; ++i), one discovers all sorts of elegent ways in which to express iterative access. Guess what? One of the more powerful and elegant constructs in C# is foreach, swiped from the likes of Python.

What English perhaps loses in expressive power due to its misshapen grammar, ghostly case system, and unpredictability, it gains from its huge proliferation of words, pilfered from other languages, their meanings distorted and highly dependent on context. For example: I was speaking to A German and a Frenchman, not A Germanman and a French. For both the other speakers, this is bizarre!

By discovering (a) the very fact that different languages have the capability to express cerain things in different, more/less precise, or more ugly/elegant ways, and (b) the specific ways in which to harness those expressive capabilities, one becomes more aware of the capabilities of one's own language, whether computer or spoken.


Post a Comment

<< Home