Sete linguagens de programação que amamos odiar (e não podemos viver sem). |
O conselho de que o melhor é não carregar mágoas nessa vida certamente não veio de alguém que tenha lutado com um computador para sobreviver. Trabalhe a qualquer momento com a lógica infernal de uma linguagem de programação e você conhecerá alguns horrores da psique humana.
Claro, todo mundo ama uma linguagem de computador quando a encontra pela primeira vez. E por que não? Afinal, somos bombardeados com todos esses exemplos de “Alô Mundo” (Hello World!) nos mostrando quanta força uma solução pode conter em três linhas de códigos.
Linguagens de programação são definidas para serem implicitamente lógicas, mas isso não significa que elas serão lógicas quando forem espalhadas por onde estiverem. Não é bem lógico dizer que as linguagens são ilógicas, mas nós dizemos isso de qualquer maneira, por que sabemos que a lógica tem seus limites.
A partir de Godel e Turing, aprendemos que os mecanismos lógicos têm fronteiras onde coisas assustadoras acontecem. Claro, talvez seja nossa própria culpa, pela má utilização e repetição de erros de programação. Mas se as linguagens de programação forçam nosso cérebro a isso, por que não culpá-las por isso?
A base instalada pode ser um desafio muito grande para que possamos abandonar a linguagem que nos irrita. Ou, talvez nossos chefes adorem tanto uma linguagem que não podem ouvir os gritos vindos das baias. Ou, ainda, a verdade cruel é que pode não haver melhores opções e nós, de fato, já estamos usando as melhores ferramentas que os humanos podem construir.
Veja a seguir as sete linguagens de programação que amamos odiar, mas não podemos viver sem.
Linguagem que amamos odiar: C
Há tantos problemas que talvez fosse melhor chamá-la “assemble portátil” do que de uma linguagem completa de computação. Alguém gosta de escrever cabeçalhos separados? Há alguém que usa o pré-processador para algo elaborado sem ficar louco?
Na teoria, supomos ser capazes de usar o poder do ponteiro aritmético para fazer proezas superinteligentes, mas qual o risco de alocar mais dados na estrutura? Será que é mesmo uma boa ideia ser muito inteligente com ponteiros? É assim que o código começa a quebrar. Se você é capaz de ser inteligente, o que muitas vezes requer escrever um longo comentário, isso praticamente sugará todo o tempo que você salvou para ser inteligente. Alguém pode lembrar de todas as regras para escrever o código C para evitar a adição de todas as possíveis falhas de segurança?
Mas não temos escolha. Unix é escrito em C e funciona na maioria dos celulares e na maior parte das nuvens. Nem todo mundo que escreve o código para essas plataformas precisa usar C, mas alguém tem que ficar atualizando com os asteriscos e chaves, ou então tudo vai desmoronar. Depois, há os drivers de dispositivo e outros programas embutidos. Alguém tem que arcar com a carga de manter a base de código Linux/Unix avançar.
Linguagem que amamos odiar: JavaScript
Os criadores de JavaScript tentaram fazer algo moderno. É muito ruim que, na cabeça deles, tenham nos condenado a uma vida de contar chaves, colchetes e parênteses – garantindo ao mesmo tempo em que estejam devidamente aninhados. Entre as funções anônimas, os fechamentos e as estruturas de dados JSON, os nossos dedos mínimos podem obter um exercício real de bater essas chaves.
E há também os detalhes estranhos. Se x é uma cadeia que mantém para 1, então x+1 irá produzir a sequência de 11 e X-1 produzirá o número zero. Alguém lembra a diferença entre false, null, Nan e indefinido? Eles soam semelhantes, mas porque JavaScript tem quatro deles? E porque eles não se comportam de forma consistente?
Não importa o quanto a gente reclame. A Internet, o World Wide Web e os navegadores não vão a lugar algum. Em seguida, a equipe inteligente Node.js veio e nos obrigou a escrever JavaScript no servidor. Resistimos a princípio, mas isso muda rapidamente pelo poder da linguagem. Vamos executar JavaScript por um longo tempo.
Linguagem que amamos odiar: PHP
Não é necessariamente uma linguagem. É mais uma ferramenta para adicionar um pouco de inteligência para HTML estático. Você pode armazenar informações e concatená-lo com etiquetas. Pode haver mais algumas características, mas parece que tudo o que fazemos com o PHP é cola junto com cordas agarradas a partir de um banco de dados.
A maior parte da web é construída com PHP. Entre WordPress, Joomla, Drupal e, a maior parte do conteúdo na rede é entregue através de código PHP. Em seguida, há uma pequena coisa conhecida como Facebook, que foi escrita em PHP e continua a absorver uma porcentagem cada vez maior do tempo das pessoas na Web.
Devemos ser gratos pelo Facebook ter construído a máquina virtual HipHop, inspirando a criação do PHP 7.0. Estes novos motores, comumente, são duas vezes mais rápidos. Uma velocidade de colisão irresistível que vai economizar milhões de dólares em eletricidade e garantir que vou escrever PHP muito tempo no futuro.
Linguagem que amamos odiar: Cobol
Cobol começou em 1959, muito antes de alguns de nós termos nascido. Deve estar obsoleto com a sua sintaxe complexa, preenchida com centenas de palavras restritas. No entanto, os amantes de Cobol continuam gerando novas versões, emprestando ideias de outras linguagens e mantendo a linguagem viva. Você sabia que há o Cobol 2014? Ele inclui tabelas dinâmicas, uma ideia que as pessoas devem tentar entrar na linguagem desde 2002. Isso tudo não é novo. Você pensa que ele morreu nos anos 70? Está errado!
Podemos ter as melhores ferramentas para escrever a lógica de negócios com dados manipulados, mas ninguém parece se preocupar pios é mais fácil comprar um computador maior e manter o código em execução Cobol. Há 543 empregos listados no Dice.com com a palavra “Cobol”. Há empregos de Cobol em companhias de todo mundo. Os pioneiros de mainframes ainda usam Cobol! Cientistas da computação podem tentar recuar, mas ouvirão de seus chefes: “Se não está quebrado, não conserte”.
Linguagem que amamos odiar: XSLT
Todo mundo começa amando o XSLT, uma linguagem funcional que transforma o XML. É uma solução inteligente que funciona muito bem quando você precisa extrair bits e peças de grandes documentos XML. Mas uma vez que o chefe pede mais complexidade do que uma simples pesquisa e substituição, a animação vai por água abaixo.
Descobrimos que quando a documentação diz “variável”, está usando a palavra como um professor de álgebra e não um programador. Com essa frase zen do expert de XSLT, Bob DuCharme: “As variáveis de XSLT realmente têm muito em comum com as constantes variações de linguagens de programação e são usadas para um propósito similar”. Se você quiser usar uma variável que se comporta como uma variável em outras linguagens computacionais, ou seja, ele pode mudar, é melhor você ser muito inteligente.
XML pode estar perdendo terreno para formatos de dados mais eficientes, como JSON, mas ainda é uma base muito ponderosa para muitos processadores de grandes dados. Você não precisa usar XSLT. Você sempre pode escrever código básico que analisa o texto em si. Entretanto, escrever todo esse código para analisar o XML pode ter mais trabalho do que a estrutura XSLT.
Linguagem que amamos odiar: Java
A máquina virtual e as bibliotecas podem datar dos anos 90, mas a sintaxe está na década de 1970 quando o C foi criado. O gerenciamento automático de memória parece ser um grande passo para frente até o seu código toma uma joelhada, enquanto a coleta assume o controle. Os desenvolvedores de Android trocam dicas no momento de solicitar educadamente uma coleta com antecedência, para garantir que o coletor não vai se iniciar em meio a um evento importante, como uma chamada para o 190.
Programadores de Java queixaram-se, por bastante tempo, sobre diversas questões, algumas das quais foram corrigidas ou, pelo menos, ajustadas pela Oracle. Mas isso criou um novo problema. Alguns dos códigos novos e biblioteca não podem trabalhar com ambientes virtualizados antigos. É quase como se cada versão depois do 1.4 fosse uma linguagem diferente.
Nenhum desses problemas importa. Java é uma fundação para telefones móveis e Web. É a primeira linguagem ensinada em muitas escolas de ensino médio. A coleção de bibliotecas é mais profunda e mais valiosa do que quase qualquer outra língua. Por que não usar ainda mais?
Linguagem que amamos odiar: Python
É uma linguagem moderna que os jovens mais se aprofundam. A pontuação é escassa e o código parece um pouco mais limpo. Como não amar? Bem, há o fosso entre Python 2.7 e 3.0. Foi a única opção que eles tinham para mover a linguagem para frente, mas o salto é grande o suficiente para que você precise manter o controle de quais sintaxe está usando. Nós iremos sempre verificar qual versão do Phyton está instalado.
E como muitas pessoas gostam de contar todos os espaços utilizados para blocos de travessão do código? Contar chaves é doloroso, mas contar espaços em branco requer um editor de espaçamento fixo.
A boa noticia é que é mais fácil de ler o Python do que do que o chamado inglês vindo dos dedos de um advogado. Isso é uma melhoria, mesmo que signifique contagem de todos esses espaços em branco. O movimento deixou a estação e é cheio de cientistas macios.