quinta-feira, dezembro 27, 2012

rubber duck debugging

Hoje vou falar de um conceito que acho engraçado.
O 'rubber duck debugging'. Trata-se de uma solução "arcaica" mas que produz resultados que os programadores decidiram adoptar para resolver problemas. Nós, programadores, fomos reparando que quando encontramos um problema difícil de resolver, por vezes chegamos à solução simplesmente tentando explicar o problema a um qualquer observador, mesmo que ele não perceba nada de programação. O simples facto de explicarmos todo o código e o que cada bocado faz, leva-nos a encontrar o erro. 
O pior é que, a maior parte das vezes, as pessoas que não percebem de programação não estão anda interessadas em ouvir um geek falar de rotinas e ciclos For, e por aí adiante.
E eis que surge o 'rubber duck debugging', um pato de borracha colocado ao lado do computador, ao qual explicamos o código, com a esperança de detectar-mos qual o problema do nosso código =D

Aproveito também para explicar o porque de, em informática, chamarmos "bugs" aos erros de um programa, e "debugging" ao processo de corrigir os erros. Na época em que os transístores não existiam como os conhecemos hoje, o componente electrónico existente eram as válvulas electrónicas  que tinham um tamanho considerável e, consequentemente, um computador ocupava o tamanho de uma sala. 
Um dia, um desses gigantescos computadores deu um problema. Veio a descobrir-se que esse problema teve origem num escaravelho que, ao circular pelo circuito electrónico do computador, ficou curto-circuitado entre duas pernas de uma válvula. Esse curto-circuito causado pelo corpo do escaravelho  fez com que o computador deixasse de funcionar correctamente  Ora, o escaravelho é um insecto, e em inglês, insecto é traduzido como "bug". Desde então, todos os problemas informáticos são chamados de "bugs". O processo de resolução do problema passou por remover o escaravelho, ou seja, fazer um "debug". 

Espero que tenham gostado destes dois pormenores. Eu acho-os interessantes =).

2 comentários:

Luciana Ferreira disse...

Reviveu!!??

José Oliveira disse...

É.....vou desenvolver trabalho que envolve blogs, tenho de desenferrujar =)