Tuesday, August 01, 2006

Desastre na Torre de Babel

Essa nossa língua portuguesa é extremamente e rica e ainda mais extremamente incompreendida. Dia desses descobri uma ótima discussão em pelo menos dois blogs sobre o termo padrão de projeto, tradução já consagrada de design pattern. Os dois parecem concordar que a tradução tradicional tem atrapalhado a indústria brasileira porque as pessoas entendem "padrão" como "norma". A palavra é realmente ambígua, mas com certeza não é a raiz da questão. A grande prova é que o problema não acontece somente aqui.

É verdade que é bem fácil encontrar no Brasil organizações que promovam uma "arquitetura" normatizada, independentemente do domínio do problema ou do contexto do projeto. Essas organizações realmente parecem gostar de dizer que têm uma "arquitetura" baseada em padrões de projeto. Aliás, a palavra "arquitetura" devia sempre vir envolvida em aspas, já que tem tantos sentidos para tanta gente diferente.

É verdade que é bem fácil encontrar alguns brasileiros integrando a gangue dos padrões. Você já conheceu pelo menos um destes: eles acabaram de sair da faculdade (ou em muitos casos, ainda estão lá) e acham que os padrões de projeto podem resolver todos os problemas do mundo, da guerra no Líbano ao açúcar do cafezinho.

Também é verdade que os brasileiros abusam do padrão Singleton. Mas todos estes problemas acontecem com a mesma freqüência no resto do mundo.

Desde o dia em que aqueles quatro caras popularmente conhecidos por Gang of Four (ou pelo acrônimo GoF) publicaram o Design Patterns: Elements of Reusable Object-Oriented Software (que aliás, é um ótimo livro: se você não leu ainda, corra para ler), as pessoas têm usado mal o padrão Singleton. Esta famigerada criatura não passa de uma variável global vitaminada e a primeira pessoa que abusou do coitado muito provavelmente não o conheceu por litetatura em português. Afinal, os termos foram cunhados originalmente em inglês.

Acontece que o Singleton é especialmente útil para quem tem a mente acostumada com o pensamento imperativo. Ele permite agrupar um conjunto de funções em algo parecido com um objeto e dizer que se usa programação orientada a objetos. É um dos modos mais fáceis de estar na moda (tanto na moda dos objetos quanto na dos padrões) e foi o que muita gente escolheu.

O problema é que algumas pessoas pegaram a febre dos padrões e começaram a vê-los como normas, quase leis, e entraram numa cruzada insana pelo Santo Graal dos padrões. Só precisamos encontrar a cura e o meu palpite é que ela vai levar uma boa dose do bom e velho senso crítico.

4 Comments:

At 8/01/2006 12:57:00 PM, Anonymous Anonymous said...

Depois de entrevistar vários plenos que me disseram que a grande vantagem do uso de 'Design Patterns' era porque o desenvolvimento era padronizado eu não tenho como dizer que a tradução não tem culpa. Claro que o fato de alguém engolir isto significa que a pessoa sequer procurou saber mais sobre o assunto mas num país onde querem traduzir até o JavaDoc isso é terrível demais...

 
At 8/01/2006 12:58:00 PM, Anonymous Anonymous said...

BTW: Comentário nos tres blogs, para ninguém perder nada ;)

 
At 8/01/2006 04:33:00 PM, Anonymous Anonymous said...

Acho que a coisa já começa errada quando a didática utilizada para ensinar os padrões é limitada a exemplos de interface gráfica. Achar aplicação prática tendo apenas isso como base complica, imagine então salvar o mundo... Mas voltando à questão da
tradução, boa sorte na utilização do Peso-Mosca e do Visitante!

[]s
-- AFurtado

 
At 8/02/2006 08:21:00 AM, Blogger Thiago Arrais said...

A grande vantagem dos padrões é a formação de um vocabulário comum, o que facilita enormemente a comunicação. Se estou discutindo com alguém opções de projeto, é mais fácil dizer que podemos usar um Parâmetro Coletor do que explicar minuciosamente o que estou pensando. Para realmente desfrutar dessa facilidade, é preciso que todos os envolvidos conheçam previamente os padrões por um nome comum.

Boa parte dos padrões têm mais de um nome. Isso acontece porque eles são soluções comuns para problemas comuns e as soluções surgem podem surgir em locais diferentes (e receber nomes diferentes) antes de um dos nomes se difundir. O Adapter, por exemplo, é chamado de Wrapper por muita gente e nem por isso o mundo acabou ainda. As pessoas são suficientemente inteligentes para saber que um Wrapper é um Adapter (e vice-versa) depois de verem os dois em ação.

Novamente, o importante é o vocabulário comum e a construção dele é independente de idioma. Podemos ter um catálogo de padrões (ou pelo menos um catálogo de tradução de nomes de padrões) em português tanto quanto em qualquer outro idioma. Obviamente, se você somente conhecer Flyweight por Peso-Mosca, vai ficar restrito a se comunicar com gente que usa esse mesmo nome. Não vejo porque alguém iria querer conscientemente trabalhar somente com o subconjunto das pessoas que falam português (e que, além disso, conhecem o termo) se pode contar com a ajuda do mundo inteiro, mas é completamente factível.

Mas quando as pessoas começam a achar que os padrões surgiram para normatizar, alguma coisa está fundamentalmente errada. Pode ser que seja a tradução que usamos nesta parte do mundo, pode ser que não.

 

Post a Comment

<< Home