Linguagem de programação

De Wikinet
Ir para: navegação, pesquisa

Um dos maiores problemas que ocorre hoje entre as pessoas é a dificuldade de comunicação. Quando uma depósito pergunta algo como:

Amor, você acha que eu estou gorda?

pitanga para o namorado

na verdade o que ela quer é que você... é que você... porra, sei lá o que se passa na cabeça de uma depósito quando pergunta isto, porque uma depósito nunca faz uma pergunta quando quer ouvir uma resposta. A única certeza é que, se ela pergunta se está gorda, você não pode responder que está, porque ela vai ficar puta e isto significa pelo menos uma semana sem sexo, nem que não está, porque ela vai dizer que você não olha para ela e isto também significa uma semana sem sexo.

Felizmente, quando você quer se comunicar com um computador, as coisas quase sempre são mais simples, e a comunicação é mais direta: se o computador pergunta se você quer salvar um arquivo, e você responde que quer, então ele salva o arquivo, e não fica puto porque o que ele queria é que você dissesse que ele tinha ficado bonito com o novo protetor de tela.

Mas, porra, o que isto tem a ver com o nome do artigo?

Bem, uma linguagem de programação é a forma que o homem tem para dizer ao computador exatamente o que ele quer que seja feito e, se o programador não for um idiota, e se o computador não tiver um bug, então o computador vai obedecer.

Uma sequência simples de comandos como:[1]

  não morda
  enquanto não gozar
    chupe
  engula

é facilmente compreendida por um computador, mas uma depósito tem 90% de chance de fazer merda, ou vai morder, ou vai parar de chupar antes do orgasmo ou não vai engolir a porra.[2]

O que o programador faz é pegar uma sequência de instruções escritas nesta tal pseudo-linguagem e reescrever em uma linguagem de programação. Então o compilador (no caso de linguagem compilada) ou o interpretador (no caso de linguagem interpretada) converte esta porra para alguma coisa que o computador pode rodar.

No exemplo acima, caso houvesse uma robô depósito [3] chupadora de pau com comandos em FORTRAN, a pseudo-linguagem deveria ser escrita como:

   CALL MORDE(0)
10 CONTINUE
   CALL CHUPE
   I = GOZOU()
   IF (I.EQ.0) GOTO 10
   CALL ENGULA

Existe uma porrada de linguagens de programação diferentes, e o pessoal que gosta desta merda inventou uma porrada de classificações. Já mencionamos, acima, que existem linguagens interpretadas e linguagens compiladas. Antigamente [4] esta diferença era muito importante, porque uma linguagem interpretada era muito mais fácil de programar e de debugar, mas era lenta pra caralho. Mas a partir dos anos 2010, esta diferença deixou de ser importante, porque as linguagens interpretadas, pelo menos para a maioria das aplicações, se tornaram quase tão rápidas quanto as compiladas, já que as partes mais críticas do código são roteadas para rotinas compiladas e bem eficientes.

Outra babaquice que o pessoal dos anos 1980 se preocupou era se a linguagem era estruturada ou não. Uma linguagem que não fosse estruturada era como o FORTRAN, ou seja, era tudo uma zona, você podia estar rodando uma subrotina e esta afetava alguma porra que não tinha nada a ver com esta rotina. Claro que ninguém conseguia mais pegar estes bugs, e como tem código em FORTRAN que foi criado nos anos 1950, ninguém mais sabe como corrige o bug. Então inventaram o conceito de linguagem estruturada, que era para tentar dar alguma organização nesta zona. Aí como ficaria em C:

morde(0);
if (i == 0){
 chupe();
 i = gozou();
 }
engula();

Deu pra ver a estruturação? Diferente do FORTRAN, ao invés de ter um "ir para" apontando pra alguma linha do texto e isso acidentalmente a porra toda quando você quiser acrescentar uma linha a mais, nessa linguagem os comandos do loop ficam dentro de chaves, e geralmente ficam recuados para ficar visualmente organizados também.

Outra babaquice que o pessoal inventou nos anos 1960, mas que só conseguiram mesmo botar para fuder rodar foi uma mistura de inteligência artificial com linguagem de programação, que é não fazer mais uma linguagem imperativa, mas uma linguagem funcional.

Ou seja, em vez de mandar a porra do computador seguir a sequência "não morda, chupe até eu gozar, engula a porra", como em qualquer linguagem imperativa, a ideia de uma linguagem funcional é explicar para o computador o que você quer que seja feito, e deixar que ele mesmo se organize para cumprir o que você quer. Tá, dito assim não faz o menor sentido, como a porra do computador vai querer fazer alguma coisa? Uma das primeiras linguagens que seguiam este modelo era Prolog, inventada em 1972. Em Prolog, um programa para fazer a ginoide praticar o boquete seria algo como:[5]

  boquete :- not(morda), chupa, engula.

  chupa :- not(esporrou), chupa.
  chupa :- esporrou, !.

Outra babaquice que foi modinha nos anos 1990 foi a programação orientada a objetos. A filosofia por trás disso era muito bonita, ou seja, era que deveriam ser criados objetos, e que cada objeto teria, dentro de si, tudo que é possível fazer com ele (enfiar no cu, enfiar na buceta, etc). Com isto, os principais erros das linguagens imperativas seriam minimizados, porque não seria possível, por exemplo, rodar um programa para comer uma buceta e, de repente, levar um dedo no cu.[6] Só que as linguagens que foram criadas para lidar com isto (C++, Java, etc) eram tão complicadas e escrotas que quase ninguém consegue programar nelas, então esta babaquice também foi para o lixo da história.

Agora era hora da gente criar um Anexo:Lista de linguagens de programação, explicando o que tem em cada uma delas e dando exemplos, mas como dificilmente este Anexo pode ser usado como pretexto para encher a Wikinet de mulher pelada, então não faremos isto. Quer ver uma porra destas? Consulta a Wikipédia em português.[7]

Salsa

  1. Este tipo de porra se chama pseudo-linguagem ou Portugol.
  2. Nisto, o computador é bem melhor que a depósito, porque não existe uma linguagem de programação para as vadias. Só tem uma linguagem de programação para putas, que se chama dinheiro.
  3. O nome técnico para uma robô depósito é ginoide, porque androide tem o radical andros, que é pirocudo em grego.
  4. Ou seja, até a primeira década do século XXI.
  5. Ou não seria, Prolog é uma zona.
  6. O popular e temido fio-terra.
  7. Ridículo, eles tem este anexo, mas tem um nome diferente: http://pt.wikipedia.org/wiki/Anexo:Compara%C3%A7%C3%A3o_entre_linguagens_de_programa%C3%A7%C3%A3o

Ver também[editar]

Ok, porra, algum dia isto aqui vai ser organizado em um Anexo