segunda-feira, janeiro 09, 2006

O que me imcomoda em Linguagens e APIs

Sabe, Tava organizando os pensamentos aqui e finalmente achei o motivo pelo qual não simpatizo muito de certas Linguagens e APIs. O que me torra o saco é quando os designers delas tem a genial idéia de proibir coisas na linguagem para evitar "más práticas". Só que más práticas dependem do contexto onde são usadas. Eu vejo frequentemente que o resultado disso cai em dois casos: - Programadores imbecis continuam fazendo imbecilidades de outras formas. ("É muito difícil fazer algo a prova de idiotas, eles são muito imaginativos") - Programadores menos imbecis tem que fazer imbecilidades para fazer o código funcionar como querem. Quantas vezes você já "hackeou" o Java porque ele não deixava você fazer o que queria de um jeito simples. A lição que eu tiro disso? Você não pode prever como seus usuário vão usar suas coisas, então é melhor não tentar. "AH! Mas os outros programadores são muito estúpidos, se eu não travar isso, vão fazer cagada" -- Típico pensamento arrogante que nós programadores temos. Devíamos ser mais humildes ou pelo menos não subestimar nossos pares. (Já ouvi um "Se você fizer algo achando que seus usuário são ignorantes, eles terão de ser ignorantes pra usar o que você fez") No fim das contas, se o outro programador fizer cagada com sua API/Linguagem, de quem é o problema? Do designer da API?! Isso só pode ser o cúmulo da arrogância, meio querer ser "oniscente e onipotente". Se o imbecil faz imbecilidades, sinceramente, problema dele, devia ter estudado mais antes de ser programador. Se não fizer, tanto melhor!!! Li em um blog outro dia uma coisa muito legal: "Fazer uma boa linguagem de programação 'segura' é como fazer uma faca afiada que nunca corte o dedo de quem usa". Mas sabe, eu estava no açougue outro dia e vi o açougueiro estripando a carne com fé e vontade. Fiquei pensando como é que ele não picava os dedos juntos, tal o empenho que ele estava em estripar a pobre peça de carne (acho que era uma costela, sei lá). Aí vi o motivo: ele estava usando uma luva de metal na mão que segurava a carne... Que isso tem a ver com programação? Que a faca tem que ser a mais afiada possível para você fazer um bom trabalho. E se não quiser cortar os dedos use a porcaria da luva! Imagino que nossas "luvas" sejam testes de unidade, mas não sei ao certo. Só garanto que se a linguagem é realmente afiada, use alguma proteção ao invés de querer fazer a linguagem "perder o fio".

Um comentário:

  1. Rapaz, essa você foi fundo.. ;) Mas sabe que concordo, a linguage deve ser poderosa e ter recursos, e não ficar limitando o programador. É parecida com a briga de desempenho e segurança. Quando maior a segurança, menor o desempenho e falo com convicção.
    Não adianta termos algo engessado se queremos algo com propósitos gerais, diferente se usarmos uma ferramenta/linguagem para uma especialidade.

    x-arnie

    ResponderExcluir