Transforming Source Language into Target Language
While superficially similar, language translation and the compiling of programming languages are not really the same sort of work.
I’ve sometimes heard translation professionals like me likened to compilers in computer software. A compiler in computer programming takes the ‘high-level’ language – a language that is very abstracted from the inner workings of the computer, like BASIC or C++, and translates it into machine code.
This is because machine code is very tedious and difficult to work indirectly, comprising filling registers with values that then affect logic gates. Rather than learn how to speak to a machine, programmers instead learn an abstract code that works like a constrained language, making it easier for them to work.
In a sense, that’s also what we do in language translation: We take a source language and translate it into another form. The crucial difference that makes this analogy a bit unsound, however, is the fact that in most cases the two languages – source and target – are of equal levels of abstraction. Because all languages are abstractions, if you think about it – ideas are given verbal form, but we don’t always agree on what they mean, exactly.
Not Programming Languages
Whereas programming languages have very precise meaning for their vocabulary and very strict controls over their grammar, human languages are messy things. The main difference between myself and a compiler is the fact that the compiler will reject outright any program that contains non-standard words, or words used in the wrong way, or violations of the languages grammar rules.
A translator, on the other hand, not only works with mistakes, but they can’t even rightly call everything that is initially confusing or difficult to understand a mistake at all. Language is an endlessly creative tool, impossible to use incorrectly, really. While ‘grammar nazis’ will complain about misplaced modifiers or incorrectly-used commas, the fact is if you can make yourself understood then you are using language correctly for its intended purpose.
Art Not Science
This is why we usually describe translation as an art, not a science. Yes, there are rules. And in an ideal world everyone would write text perfectly, following all the rules of grammar – and even then we would still have to bring a certain sense of creativity to our work, because languages don’t follow the same rules, and often have vocabulary words that don’t have precise matches between source and target.
Think about all those German words like schadenfreude that require a sentence to translate: There is simply no single English word for ‘pleasure derived from the misfortune of others.’ Unless, as will happen, English simply adopts schadenfreude and it becomes an English word as well.
So, while I’m usually flattered by the software and compiler comparison, the fact is it’s not really accurate, and no matter how professional and how accurate I try to be, translation can be a messy and even random business not suited at all for computer programming!