Third kind of languages?

I am now reading the book “Language in Space – a window on Israeli Sign Language” by Irit Meir and Wendy Sandler (ISBN 965-311-056-X). The book applies linguistic analysis to the Israeli Sign Language, used by most of the Deaf in Israel.

There are similarities and differences between spoken and signed languages. There are principles, which serve as common denominator between those languages.

As I am thinking about programming languages, I wonder whether they can be regarded as a third kind of languages. In other words, if we apply linguistic analysis to programming languages, what can learn from the linguistic analysis results? An example for a programming language, whose design takes into account linguistic issues in an explicit way, is Perl, especially Perl 6.

One major difference between human languages and programming languages is that humans can freely invent new words, new ways to modify words, and new ways to combine words into sentences. However software developers are constrained by the compiler/interpreter’s limitations and cannot easily break away from those constraints.

For example, to discuss sorting in Hebrew you need only to invent a new meaning for the word “מיון”. However to discuss sorting in a program, you need to develop, find, beg for, or steal a library, which implements the sorting algorithms, which interest you.

Recent programming languages are less constraining than early ones (with the exception of LISP, which was early, difficult to learn but not constraining). Languages like Perl and Python support lists (arrays indexed by numbers) and hashes (associative arrays, which map arbitrary-but-immutable values into other arbitrary values). They also support classes/objects. I wonder if there are more concepts, like lists, hashes and objects, which need to be supported in order to make programming languages feel as unconstrained as human languages.

Author: Omer Zak

I am deaf since birth. I played with big computers which eat punched cards and spew out printouts since age 12. Ever since they became available, I work and play with desktop size computers which eat keyboard keypresses and spew out display pixels. Among other things, I developed software which helped the deaf in Israel use the telephone network, by means of home computers equipped with modems. Several years later, I developed Hebrew localizations for some cellular phones, which helped the deaf in Israel utilize the cellular phone networks. I am interested in entrepreneurship, Science Fiction and making the world more accessible to people with disabilities.

8 thoughts on “Third kind of languages?”

  1. I agree that a capability to learn language slows down in time. However, one thing to note is that the capability for learning your Mother Tongue (or Tongues) is almost always greater than the one for other languages you've learned. I'll give you some examples.

    I know both Hebrew and English relatively well. However, when I learn a new Hebrew word, I can many time understand what it mean from the context, and it enters my mind and stays there forever. With English, I often encounter words that I'm sure I've encountered before and I forgot what they mean. I also sometimes misunderstand the meaning of a word out of its context. I'm gradually improving my mastery of English, but much more slowly. It'll probably take me a very long time to reach the level of a native English speaker who is intelligent enough and keen on improving his language.

    Here's another example: recently the Israeli Perl Mongers were visited by Stas Bekman who is a Russian-Israeli programmer who now lives in Australia. He visited Israel a year before. After spending some time in Australia, his Hebrew became very bad, and he had a lot of trouble expressing himself, and kept forgetting words. I think he was still able to understand the conversation we spoke between ourselves in Hebrew, but it was still clear he forgot most of his Hebrew. But he probably still remembers Russian very well, because it's his mother language.

    It's very different with programming languages. A talented programming can easily master several programming languages, and hack using them simultaneously, while still performing the right paradigms in each one. While he may sometimes perform “faux-amie” (“false friends”) mistakes or otherwise will have to look up stuff (even trivilaties), he would still be able to otherwise make a powerful and quick use of all of them.

    It's also much easier to recover knowledge of a relatively forgotten programming language than it is of a human language.

    One interesting anecdote is that I once saw on T.V. an interview with Avi Arad, who is an Israeli expatriate who now lives in the States. He spoke Hebrew on the interview, fluently, but used many English words, even for many words for which there is a Hebrew equivalent.

    (http://livejournal.com/users/shlomif)

  2. In other words, a good programming language (good in the sense of not limiting the developer's mind too much) really serves as a mediocre design language.

    The separation between an adequate design language and a programming language is necessary exactly because of all those concepts, which need to be quickly and easily invented by the developer.

    (http://livejournal.com/users/tddpirate)

    1. The code is just a side effect and OPM is not midiocare its the best there is (and i know and used many). The problem, is this unexplained tendancy to patent and close source everything. Not only that, it is done by the technion. I just can't understand it.

      (http://livejournal.com/users/linjunky)

  3. I see what you mean, i was indeed refering to the assembly code of processors.
    Anyway, i think that what you are really talking about is not exactly a programming language, it is a design language.
    For example: Sharon is a person, a person talks to the software. the software is a process. and on and on…
    You might want to have a look at our faculty developed case-tool for the OPM – OPCAT. IE faculty, technion.
    http://www.objectprocess.org/

    After you have the design that is detailed enough you can auto-generate the machine code.

    (http://livejournal.com/users/linjunky)

  4. I think that humans are born with a certain set of language signs and sounds and have ready vessels for certain kind of words such as “father”, “mother”, “food”, etc…
    A computer have a much much lower set of words and less different categories of words. In addition, there is no mechanism in a PC to learn aliases for notions or internal representation of words. Thus, its hard to compare between a human language to a computer language. Also, humans sometimes makes mistakes while learning this words, imagine what will happen when a computer will runs millions of code lines and have mistakes interpreting those words. You will notice that small children have an amazing learning capabilities for languages that in time slows down and locks into place. Imagine a computer doing that, probably it will give a new meaning to a PC – a really personal computer that only understand what the user codes into it 🙂

    (http://livejournal.com/users/linjunky)

    1. I see that there is a confusion. Programming languages are not computer languages. Programming languages are human languages.

      An human software developer, who writes software, thinks in terms of the programming language, which he uses. His thought processes are constrained by the programming language, which he uses.

      This constraint is similar to that expressed by the Sapir-Whorf hypothesis. See the following references:
      http://venus.va.com.au/suggestion/sapir.html
      http://www.aber.ac.uk/media/Students/njp0001.html

      This similarity is why I feel justified in considering a programming language to be an human language rather than a computer language.

      (http://livejournal.com/users/tddpirate)

Comments are closed.