Bom ou ruim?
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