domingo, 18 de janeiro de 2009

Programação Orientada à Gambiarra

O primeiro paradigma de computação (análise, projeto e programação) refere-se àquela computação feita como em Fortran, chamada de procedural. Houve um momento em que foi-se necessário introduzir um novo paradigma que se ajustasse melhor às modas: cria-se a programação orientada aos objetos, paradigma muito forte e que até hoje é usado.

No entanto, nem tudo que é forte dura pra sempre... Hoje, com aulas de computação cada vez mais complicadas e projetos cada vez mais complexos, há a necessidade de um novo paradigma. E é nesse sentido que surgem dois novos paradigmas... a Programação Orientada a Gambiarras (POG) e a Programaçao Orientada a Ponteiros (POP).

Desta segunda, não comentaremos nada. Atualmente, a POG é o paradigma mais utilizado, estando presente em gigantescas empresas, emissoras de TV (veja a figura anterior), etc.

A técnica da reflexão

Talvez uma das técnicas hoje mais usadas dentro daquilo que chamamos POG seja a técnica da reflexão. A filosofia, inclusive, pode ser confundida com os projetos open source, acarretando em problemas de autoria. Não se confunda: a técnica da reflexão trata-se da geração de uma imagem a partir de uma fonte. Entenda por fonte o código-fonte, e entenda por imagem o seu código-fonte.

A forma mais simples de realizar esta técnica é utilizando o arsenal que já vem em seu Sistema Operacional: CTRL+C para gerar a imagem e CTRL+V para focar a imagem [1].

A POG nos meios acadêmicos

Como hoje o mercado pede programadores POG, muitas universidades já criaram cursos específicos. Quer ver se você sabe programar em POG? Tente então responder à pergunta destacada na seguinte prova de Introdução à POG - I (clique para ver a imagem em tamanho real):


Antes de ver a resposta, que tal postar sua solução para o problema? A solução mais simples à moda POG ganhará um post dedicado à ela [2]. A resposta abaixo foi proposta pelo melhor aluno da sala e recebeu, como podem ver, 1.0 na questão. Provavelmente, o professor esperava ainda algo mais POG do que o aluno conseguiu fazer [3].


Em aulas de POGS, é muito comum alunos frustrados por não conseguirem atingir o nível que os professores requerem dos alunos.

A técnica de todas as certezas...

Por fim, o insistimento é a técnica mais vergonhosamente suja elaborada dentro da POG. Há aqueles que dizem que esta técnica nasceu junto com as primeiras edições do [4]; também há registros da utilização desta técnica antes. A técnica consiste na compilação de um código que apresenta erros mais de uma vez. Muitas vezes, o número de vezes que o código é recompilado pode chegar às centenas de vezes.

Programadores mais habituados com a técnica podem tentar reiniciar a máquina para continuar este processo; ainda o que exige mais perícia do programador, é procurar problemas no hardware da máquina.

Geralmente, quando as técnicas de insistimento falham (o que ocorre em torno de 33.7% das vezes), o programador é forçado à entrar na rotina de verificar seu código novamente.

Há alguns poucos experts que não desistem nesse estágio. Antes de verificar o próprio código, ainda podem tentar, não necessariamente nesta ordem, as seguintes abordagens:
  • Retirar alguns comentários do código por medo de eles bugarem alguma coisa.
  • Reinstalar o Sistema Operacional.
  • Dizer ao cliente que ainda está à procura de uma solução.
  • Buscar na internet um código para resolver o problema.
Estudiosos em POG dizem fazer também muito efeito começar pelo último passo: Buscar na internet um código para resolver o problema. Segundo pesquisas recentes, muitos usuários começam por este passo, mesmo antes de iniciar a rotina do insistimento.

Conclusão

Não adianta tentar fugir, o POG sempre estará presente, mesmo quando possamos não querer. Admita: você já usou a reflexão ou enjambração? E que tal insistimento? É muito difícil achar que nunca usou nem sequer uma dessas últimas três técnicas (ao menos sem saber).
Link
Como a desciclopédia não pode ser negada como participante da cultura nerd em geral, admitimos que aprendemos as noções aqui apresentadas neste artigo. E para testarmos nosso nível POG, aplicamos a reflexão em algumas de suas imagens.

Notas:
  • [1] Programadores que usam Emacs também podem usar estas técnicas, basta habilitar as teclas c-C para copiar e c-V para colar. Também há como utilizar outras teclas, mas aí perde a graça.
  • [2] Se, e só se, forem postadas mais de cinco tentativas, aí realmente podem esperar por um posts só sobre as tentativas!
  • [3] Veja aqui de nosso correspondente, Foca, tirou essa notícia para nós.
  • [4] Em , muitas vezes é necessário compilar o código mais de uma vez para que as referências cruzadas e as figuras sejam colocadas corretamente.




8 comentários: