Thursday, February 1, 2007

Studying The Classics

A year ago Joel Splosky asked, Are pointers and recursion the Latin and Greek of Computer Science?

I don't think so. Bragging time: I could read Latin and Ancient Greek at the college level in high school. And my bragging becomes relevant: I think Smalltalk and Lisp (respectively) are the Latin and Ancient Greek of programming.

(The real reason for the bragging isn't to build my ego. It's to give me an excuse for skipping paragraphs and paragraphs of detail. I'm tired from driving to from northern New Mexico to Los Angeles in less than 24 hours, so I want to say just trust me on this.)

If you learn Latin, every European language with the exceptions of German and Icelandic will become much easier to learn -- yes, even English -- and your understanding of these languages will be much, much deeper. If you learn Ancient Greek, your head will explode, and you will never recover.

If you learn Smalltalk, every object-oriented language becomes easier to learn, and your understanding of these languages will deepen. If you learn Lisp, your head will explode, and you will never recover.

Quod erot demonstrandum. (Which was the thing to be shown.)


  1. Being from Europe, speaking 5 languages including German (not my native though) and having a so called classical education, I can tell you that Latin even helps with German. German is the most 'structured' language of the Germanic languages, like Icelandic, Swedish, Danish and Dutch. This structure (grammar) resembles the Latin and Greek structures of the language. (English used to be like this, but is now less so). Because of this learning German or any other language of the Indo-European language group, like Hindi, is much easier. If you know the building blocks, all you have to learn is are words and sounds (and maybe a new alfabet).

    I think all natural languages should be taught this way. With that I mean, pointing out similarities between languages. The structure of grammar in the Indo-European language group could be considered a meta-language. Individual language implement it differently, but there all doing the same thing. The grammar tells you what is happening even if you do not know the meaning of all the words.

    Anyway just wanted to say that Latin and Greek even help you understand German (and Icelandic), be it in a indirect way.
    Oh, and by the way, even English helps you to learn German or Icelandic. Just go back to the grammar, throw out most of the words that look like French words and look for international words like 'international'. This will help you learn a Germanic language. Of which language family English is also a part. But that was not what your posting is about.

  2. I think you're very much onto something, although I had heard that Icelandic followed a weird verb-centric model that it shared only with Japanese. But certainly the structure is there, even without the vocabulary, and also Greek mashes words together to create new ones in the same way German does.

  3. Couldn't agree more! Every programmer should learn Smalltalk and Lisp because no matter what language you program in, it'll make you better, and possibly a little bitter. ;)

  4. It maybe that Icelandic has some weird stuff in it, but it has the same origins as Swedisch, Danish and English. Of course every natural language tends to develop some peculiarities of its own with the passing of time. Like what you say about mashing words together that is a typical thing to do for a Germanic language. Not that they all do it as much as German but still English is the odd one out. Due to the influences of French (which uses a proverb i.e. 'de' in between two words to mash words together) English does not write composite words as one word. I personally think English should do that though.

    For example, 'computer screen' reads like 'computer' [pause] 'screen', because of this both have the same emphasis. Which is not what is meant. 'Computer' tells you about the type of 'screen' your talking about. Screen is more important then computer. In the right context one could even leave out 'computer'. If one leaves out 'screen' that would be confusing and even totally wrong. (And then there is the IMac ;) )

    Anyway, it may be so that Icelandic has a verb-centric model that resembles only Japanese. Its roots still make it a Germanic language and one can never escape ones roots ;). Knowing about these roots make you more aware of what it is you are doing. So I tend to agree that knowing about Smalltalk and Lisp help you understand more about OOP. So I'm trying very hard to make time to learn Smalltalk. And with that I mean write a small application to learn how to do stuff in Smalltalk.

  5. Hey Giles,

    I love your site, I particularly like your take on these from the terms of the Classics. I have a degree in philosophy and i"m always amazed about how philosophical some languages are or aren't!

    In any case, your site has definitely pushed me to take a look at squeak!



Note: Only a member of this blog may post a comment.