2007-01-12

Bom ou ruim?

Poliedro Outro dia quando respondi um comentário do Tiago ao artigo PHP estúpido, estava muito zangado com alguns assuntos e o pobre Tiago acabou levando a bronca sem culpa no cartório.

Mas de qualquer forma, tirando o tom agressivo a resposta foi muito boa e esclarecedora, segundo o Silvio, quase um artigo.

Já escrevi um artigo sobre o assunto, mas nunca é demais reiterar.

Como há um senso comum na Informática de que passado é passado, o que deixa os mais novos (geralmente programadores com menos de 10 anos de computação) sem um background muito sólido, e os leva a acreditar em «verdades absolutas» cantadas por grandes empresas e defensores ferrenhos desta ou daquela ferramenta.

Tipagem fraca × tipagem forte


Há uma crença de que a tipagem forte é muito superior à fraca, e não é bem assim.

Precisamos primeiro entender o que é uma coisa e o que é outra...

Tipagem fraca é quando os tipos usados pela linguagem não são muito bem definidos, são poucos ou se confundem entre si. Nesta definição, são linguagens fracamente tipadas C (éééé... C é fracamente tipada, pois os tipos se confundem), Perl (que possui pouquíssimos tipos) e PHP, por exemplo, e fortemente tipadas C++ (que é bem menos tolerante quanto a tipos do que C), Java, Python...

Há linguagens que ficam mais ou menos entre os dois, como Lua.

É incontestável que a tipagem forte controla melhor o que o programador pode ou não fazer, minimizando a probabilidade de ocorrer uma burrada grande, o que é bom quando o programador precisa de uma babá.

Mas se falamos de programadores crescidinhos, é o programador quem deve controlar a linguagem, não o contrário.

Tipagem dinâmica × tipagem estática


Mais um blá-blá-blá comum em discussões entre linguagens.

Vamos começar definindo...

Tipagem dinâmica é quando o tipo está associado ao valor constante, não à variável. Assim uma variável pode ter em momentos diferentes valores de tipos diferentes.

Tipagem estática é quando o tipo está associado à variável. Assim uma variável só poderá ter valores de um mesmo tipo ao longo de todo o programa.

Tipagem estática não é a mesma coisa que tipagem forte! Uma linguagem pode ter tipagem fraca e estática, fraca e dinâmica, forte e estática, forte e dinâmica ou qualquer coisa intermediária.


Novamente dizem que a tipagem estática é melhor que a dinâmica, o que não é uma verdade. É somente uma escolha entre caminhos que levam equidistantemente ao mesmo objetivo.

Só que, novamente, alguns programadores precisam de uma babá que os leve pela mãozinha através do caminho, e é isso que a tipagem estática faz.

Programadores criativos e maduramente cuidadosos se sentem mais livres com tipagem dinâmica.

Paradigma estruturado × orientação a objetos


Aqui se encontra um dos maiores mal-entendidos da história da programação: orientação a objetos presume programação estruturada.

Você não deixa de programar estruturadamente para programar orientado a objetos, mas simplesmente nao pode orientar a objetos sem programação estruturada!

Mas programadores mais jovens e entoxicados pelo lero-lero javista acham que uma coisa exclui a outra e que orientação a objetos é superior a programação estruturada.

Na verdade orientação a objetos é mais uma ferramenta que você pode usar e não a chave mestra para todas as portas... e muitas vezes pode atrapalhar em vez de ajudar – como usar uma pá para tirar um parafuso.

Programação scripting


Há uma noção errada amplamente divulgada de que programação scripting é inferior.

Novamente precisamos definir o que é programação scripting.

Um script é um programa geralmente interpretado (diretamente ou através de uma máquina virtual) que agrega recursos pré-programados.

O problema com esta definição é que quase tudo pode ser considerado linguangem de scripting, principalmente Java.

No entanto Java não é considerada linguagem de scripting e Python é. Portanto só podemos concluir uma coisa: classificar uma linguagem como scripting ou não é um ato puramente arbitrário.

Daí podemos deduzir sem medo de estar errados que esta classificação é um ato puramente pejorativo, apesar de eu pessoalmente não ter nada contra o termo scripting.

Conclusão


Só há uma conclusão possível: não acredite em tudo o que ouvir!

[]'s