Exame Logo

Conheça 10 linguagens bizarras nas quais você nunca vai ter que programar

Nem só das linguagens populares vive a programação. Como em toda cultura digital, existe também um nicho – que no caso é das linguagens esotéricas.

As linguagens esotéricas (freeimages.com)
DR

Da Redação

Publicado em 22 de julho de 2015 às 15h21.

Última atualização em 13 de setembro de 2016 às 16h41.

Nem só das linguagens populares vive a programação. Como em toda cultura digital, existe também um nicho peculiar nesse universo de códigos: o das estranhas linguagens de programação esotéricas, ou esolangs. Não é um termo novo - nem de longe, na verdade. Essa vertente surgiu provavelmente em maio de 1972, mesmo ano em que nascia o C. Foi naquela época que os estudantes Don Woods e James M. Lyon, ambos de Princeton, criaram a INTERCAL, uma linguagem mais desafiadora do que todas as existentes até então.Uma página dedicada ao projeto - certamente criada alguns bons anos depois - captura bem a essência da ideia. Em uma tradução livre, o texto diz: "Ok. Você programou em C. Você hackeou com LISP. Fortran e BASIC não significaram nada para você. Você escreveu modos do Emacs por diversão. Você comeu assemblers no café da manhã. Você é fluente em meia dúzia de linguagens que ninguém além de uns poucos super geeks apenas ouviram falar. Você engoliu e entendeu TECO. Possivelmente você até sabe COBOL. Talvez, então, você esteja preparado para o último desafio... INTERCAL".Como dá para notar, é óbvio que a ideia não era fazer da INTERCAL algo comum, para ser utilizado de forma séria. E essa é uma característica compartilhada pelas linguagens esotéricas, das mais simples às mais abstratas, ainda hoje. Apesar de algumas serem até funcionais, nenhuma visa se tornar um C++ ou um Java - os objetivos principais são experimentar ou fazer piadas, como explica um dos fóruns dedicados a elas, o esolangs.org. Ficou curioso? Na lista a seguir, você vai conhecer dez dessas muitas linguagens esotéricas, junto com seus respectivos programas "Hello World" (quando eles couberam na imagem, claro). Confira.
  • 2. Brainfuck

    2 /11(Reprodução)

  • Veja também

    Comecemos com a mais popular: a Brainfuck, uma linguagem tão complicada que pode dar um treco no cérebro. A principal característica dela é seu minimalismo, e a ideia é fazer com que os programas tenham o mínimo de linhas (ou mesmo letras) possível. Criada em 1993 pelo suíço Urban Müller, a linguagem tem um compilador 240-byte e apenas oito comandos (">", "FALSE - outro projeto criado em 1993 -, que por sua vez "descende" da Forth, uma linguagem um tanto mais séria da década de 70. O Hello World está na imagem, e aqui você confere um exemplo de programa.
  • 3. ArnoldC

    3 /11(Reprodução)

  • O ex-governador da Califórnia, ator e halterofilista Arnold Schwarzenegger não é dos mais ligados em tecnologia, e teve o nome associado ao tema provavelmente cinco vezes em toda a sua carreira - em quatro filmes do Exterminador e em O Vingador do Futuro.Mas essa falta de relação com o assunto não impediu que o finlandês Lauri Hartikka desenvolvesse a ArnoldC, uma linguagem esotérica que tem frases do ator como comandos e uma estrutura até familiar para quem já é programador.Os conhecidos "True", "False" e "EndMethod" são "NO PROBLEMO", "I LIED e "YOU HAVE BEEN TERMINATED", e o Hello World é essa obra de arte que você pode ver na imagem. O projeto tem o código aberto no GitHub, e ainda dá para colaborar com o desenvolvimento dele - que está parado há alguns meses, infelizmente.
  • 4. Shakespeare Programming Language

    4 /11(Reprodução)

    Criada em 2001 pela dupla Jon Åslund e Karl Hasselström, a Shakespeare Programming Language (abreviada como SPL) nasceu para render códigos-fonte bonitos, que "lembrassem peças do [autor inglês] Shakepeare", como explicam os responsáveis pela ideia na página do projeto. Ele é descrito como uma combinação da expressividade do BASIC com a "simpatia" da linguagem assembly."Não há dados ou estruturas de controle, apenas aritmética básica e gotos." A SPL não tem um compilador próprio, mas as peças que representam os programas podem ser traduzidas para C com a ajuda de uma ferramenta que a mesma dupla desenvolveu. Ou seja, ela não é muito mais do que uma máscara (bem bonita e refinada, é verdade) para aplicações feitas na velha conhecida linguagem. A imagem aqui comportou apenas um pequeno pedaço de todo o Hello World, que ainda tem mais uma cena e três atos.
  • 5. LOLCODE

    5 /11(Reprodução)

    Outra que, estruturalmente falando, não foge muito do padrão, a LOLCODE, de 2007, emprega na programação o "dialeto" lolspeak, usado principalmente nos primeiros memes de gatos popularizados pelo site I Can Has Cheezburger.As frases normalmente têm abreviações e palavras em letras maiúsculas, além de gramática incorreta, com inversões e verbos conjugados propositalmente de forma errada. E são essas as características aproveitadas na linguagem, cujos códigos começam sempre com um "HAI" (ou "Hi", "Oi" em inglês) e terminam com um KTHXBYE ("Ok, thanks, bye", ou "Ok, obrigado, tchau").Um compilador em C foi desenvolvido, mas a linguagem não evoluiu muito nos últimos anos. O curto Hello World (ou HAI WORLD) está aí na imagem. O CAN HAD STDIO é a solicitação de biblioteca, enquanto o VISIBLE faz com que o programa exiba a mensagem na tela.
  • 6. Emojinal e 4Lang

    6 /11(Reprodução)

    Populares na web e em apps de mensagens, os emojis também podem ser utilizados na programação - ou ao menos é isso que acham os criadores da Emojinal e da 4Lang. A primeira das duas linguagens foi desenvolvida pelo artista e programador Ramsey Nasser, em parceria com o também designer e seu colega Addie Wagenknecht.Já a segunda foi idealizada por usuários do 4Chan. Apesar da diferença de ambos, os conceitos delas não são lá muito diferentes, e se resumem a trocar as palavras e tags por emojis. Um "Hello World" tradicional, por exemplo, vira um símbolo de mão acenando ao lado de um planeta.É claro que, por baixo dos panos, os compiladores são um tanto mais complexos, e precisam "traduzir" os códigos de cada desenho - que funcionam como uma "camada" a mais - para a linguagem das máquinas. O desenvolvimento da Emojinal foi interrompido, como dá para ver pela página do projeto no GitHub, mas o do 4Lang continua, embora não muito acelerado.
  • 7. ZOMBIE

    7 /11(Reprodução)

    A ZOMBIE é descrita como uma linguagem de programação para "Necromantes, em particular os malvados" - e só por aí já dá para ter uma ideia da bizarrice. Ao contrário de alguns exemplos mostrados aqui, a linguagem não foge muito, estruturalmente falando, das mais tradicionais. A diferença é que alguns termos da sintaxe lembram as palavras mágicas pronunciadas por um bruxo.Os criadores exageram na descrição, ao dizer que a ZOMBIE "permite que um necromante anime corpos mortos, invoque e controle espíritos e resolva qualquer problema computacional". "A linguagem deve ser inerentemente má", dizem. Na verdade, um Hello World não tem muito mais do que um "Animate" no lugar de "EndMethod" e um "Summon" para invocar a aplicação.
  • 8. Piet

    8 /11(Reprodução)

    Se você pensou que uma linguagem não poderia ser mais visual do que a Emojinal, você errou. Inspirada nas obras do pintor holandês (e um dos pioneiros no neoplasticismo) Piet Mondrian, a Piet é utilizada para gerar códigos e programas que são, na verdade, bitmaps - guias binários utilizados pelo computador para compor imagens que, neste caso, se parecem com pinturas abstratas geométricas.Esta que você vê na imagem equivale a um "Hello World", por exemplo. A linguagem utiliza 20 cores distintas, e cada uma se comporta de uma forma particular - mais ou menos como as tags de uma linguagem mais tradicional.A unidade básica do Piet é um bloco de cor, formado por uma sequência de pixels (ou "codels") de uma mesma tonalidade. Aliás, os codels mencionados são basicamente um aglomerado de pixels. Eles são utilizados nas representações maiores dos programas, visto que as aplicações normalmente são bitmaps muito pequenos.Caso você não tenha entendido nada desse Hello World da imagem, o criador do Piet, David Morgan-Mar, explicou como o código funciona em sua página DangerMouse - e tentamos reproduzir com essas setas pretas. Segundo ele, a aplicação começa no codel vermelho do canto superior esquerdo, e segue para a direita (como fazem todos os programas escritos na linguagem) até atingir a borda.De lá, ela desce, vira à esquerda e continua - sempre acompanhando a beirada do bitmap e as tonalidades das cores - até atingir o codel azul escuro. De lá, o "program flow" sobe para a parte azul clara, depois para a direita até o outro codel azul escuro e, enfim, desce e chega ao pequeno espaço verde escuro.A partir desse codel, o destino é a parte amarela à esquerda. Ao chegar nela, o programa sobe e passa pelo bloquinho amarelo mostarda, que "abre" uma área cercada de blocos pretos. A cor preta é usada para, enfim, interromper o fluxo e encerrar o programa.
  • 9. Ook!

    9 /11(Reprodução)

    Quer algo menos complexo? A Ook! (com a exclamação mesmo) foi desenvolvida para ser entendida por orangotangos. A simplicidade é herdada da Brainfuck, mas a linguagem consegue ser ainda menos complexa, sintaticamente falando. Seus códigos se resumem a "Ooks" seguidos de pontos finais, interrogações e exclamações, e cada combinação (sempre formada por dois "Ooks") indica uma instrução para o ponteiro de memória.Um "Ook. Ook?", por exemplo, serve para mover o ponteiro para a próxima matriz celular (ou array cell, se preferir o termo original em inglês). Se quiser programar ou ao menos ter o código de sua aplicação supostamente entendida por um macaco, há interpretadores em Ruby e Python, um conversor para de Ook! para Java (e vice-versa) e um compilador em .NET ( tudo aqui ). A linguagem, aliás, foi escrita pelo mesmo criador da Piet, da ZOMBIE e da próxima da lista.
  • 10. Chef

    10 /11(Reprodução)

    Um pouco menos bizarra do que a última, a Chef rende códigos-fonte em forma de receitas. De acordo com a descrição escrita por seu criador, essas instruções não devem "gerar apenas um programa válido, como também ser fáceis de preparar e deliciosas".Os ingredientes vêm sempre acompanhados de números, que indicam os valores dos dados atribuídos a eles no modo de preparo. Há diferenças entre um material sólido e um líquido, e o estado é indicado pelas unidades de medidas (g e Kg para algo sólido, ml e l para uma bebida).Colheres de sopa, de chá e xícaras também podem ser utilizadas no código, e indicam itens que podem ser tanto líquidos quanto sólidos. Por fim, cada sentença no modo de fazer - como "tire algo da geladeira" e "misture X ingredientes em uma vasilha" - equivale a uma instrução, e todas elas precisam ser escritas seguidamente ou em lista, para facilitar a visualização (as quebras são ignoradas, de qualquer forma).Se quiser entender melhor, além do "Hello World" de suflê criado por David Morgan-Mar, temos um em forma de receita de bolo de chocolate (em parte, na imagem), que rende um programa e um bolo (de verdade) se seguida direito.
  • 11. Malbolge

    11 /11(Reprodução)

    Não são apenas pinturas que influenciam as linguagens esotéricas. Criada ainda em 1998 por Ben Olmstead, a Malbolge foi batizada em referência ao oitavo círculo do inferno, o Malebolge, na obra Inferno de Dante Alighieri.E o nome não é à toa: a linguagem de programação é absurdamente complicada, e foi desenvolvida para que praticamente ninguém conseguisse utilizá-la para nada. Qual a utilidade, então? Basicamente servir como um experimento artístico. Afinal, estamos falando de linguagens esotéricas.Olmstead disse em uma entrevista ao site Esoteric.Codes que desenvolveu a Malbolge em uma tarde. Ele ainda revelou que utilizou números ternários em vez de binários simplesmente por achá-los mais difíceis de entender, e que também nunca conseguiu programar nada na linguagem - o máximo que fez foi uma aplicação que imprimia um H e saía. O primeiro programa em Malbolge, por sinal, só saiu dois anos depois do "lançamento" da linguagem - e foi gerado por um algoritmo, e não por um ser humano.O pior é que ele nem pode ser aproveitado tão facilmente, já que o código se auto-modifica. Na verdade, quando um comando é rodado, o código se criptografia. O site original da Malbolge saiu do ar, mas o pesquisador Louis Scheffer salvou uma cópia da descrição e do interpretador, que lê o código e o "traduz" para algo decifrável.
  • Acompanhe tudo sobre:Desenvolvimento econômicoINFO

    Mais lidas

    exame no whatsapp

    Receba as noticias da Exame no seu WhatsApp

    Inscreva-se

    Mais de Tecnologia

    Mais na Exame