The tiers vs. modules confusion

I'm French, and I work in the IT industry here. But because about every improvement in the software domain is done in English (or at least translated into), we have a translation problem. I don't know if it's widespread among the other non-English-speaking countries (quite a lot, in fact). Basically, we have two options: keep or translate. Most of the time, we chose to keep the english word. The reason is simple: standardization. We have an instance that defines our vocabulary and grammar (L'Académie Française), but computer science is a too fast-moving and specialized target to be handled by this instance.

 

This vocabulary is used in various places: book translations, books in native languages, computer science lessons, technical documentation for our clients. All of this builds a set of developers with very different degrees of knowledge. Most of them are basically clueless; they are developers because it's a job they have found; they have strictly no interest in computers or software development; a technical discussion is very difficult with them, because they're not interested in remembering or learning anything from it. A second category is "want to learn, but not comfortable understanding English." Not knowing basics of English puts a real stopper on the learning process. You have to wait until someone translates, or at least explains, the vocabulary. And if nobody has strong authority on the subject, you have multiple translations and explanations: this is the end. This leads to another category, "want to learn and know basic English" (my case I hope :-). Internet brought us an overwhelming wealth of information, with a decreasing signal to noise ratio today with blogs and the hesitant syndication. We are at a point where our primary sources of information are sponsored by strong corporate interests, and with a lot of bloggers, with their success, joy, deception, anger, and a fantastic sense of ranting and flaming. But it went in the opposite direction of usenet: instead of one group focusing on one subject, we have one people focusing on its group of interests, repeat n times for both. For this "want to learn and can," a resource becomes quickly very limited: time, so he/she has to choose what to do with its remaining free time.

What's left? A handful of "hardcore" enthusiasts living in their own world, and among them, two or three are trying to share with the Management the concepts of today. Basically, they know that development that promotes reusability is good (even if there is never enough money to achieve it), they have been told that multi-tiers applications are more scalable, because there is a separation between different layers. This doesn't prevent at all to have a modular (as Bertrand Meyer defined in Object-Oriented Software Construction) conception inside the tier. The problem is that "tier" is what we call a "faux ami" (I guess it's the same expression in English). The French "tier" means "third party", so if you don't translate and speak about "une architecture 3-tier", it has a sense as if it were translated. But by translating as "third party" or "party," you lose the "layer" aspect. At that moment you see things like "le tier de logging" ("the logging 'tier'") appear. This is nonsense (at least in most of the applications), because logging is orthogonal to the business process. What makes sense is to have a logging module that takes care of the log streams, formats thems, and puts them in places where it makes sense. Little by little, words are used in place of others, and they lose their meaning.

Eventually, when a technical discussion happens between a "want to learn" and a "drown in it," the vocabulary must be rehearsed again and again. We're on the edge; we fight to rediscover concepts and put a name on them. This is still youth... perhaps adolescence.