fbpx

(44) 99955-1057

“Ainda bem que a comunidade dos programadores, contra a vontade dos politicamente corretos, criou esse monstro chamado goto” (Parodiando um velho político brasileiro…)

0 Comments

Primeiramente, gostaria de deixar bem claro que estou ciente das críticas negativas que terei de absorver, tocando num assunto muito evitado, e até proibido nas rodas dos programadores “modernos” (as aspas são intencionais). É semelhante ao que acontecia antigamente no Brasil no início do século XX com a “Tuberculose”; palavra proibida nas conversas em família, pois, não se admitia, em hipótese alguma, que alguém prenunciasse essa palavra abertamente. Tinha que ser substituída por algum termo mais suave, como: “aquela doença” (como o meu pai nos obrigava a dizer); ou, em relação ao paciente: “fulano está fraco do pulmão”, mas nunca dizer “fulano está com tuberculose”! Era como se a Tuberculose não existisse, mesmo ceifando vidas queridas, na época. Assim, o paciente com essa patologia morria mais por abandono e indiferença das pessoas, do que devido à própria doença. As visitas nem chegavam perto do seu leito; ele tinha que tentar ouvir, de longe, as conversas, colocando a mão em concha na orelha; e foi daí que surgiu a expressão para adjetivar as pessoas que têm boa audição: “ouvido de tuberculoso”! Hoje, graças a Deus isto não acontece mais, pois, a doença é 100% curável; basta seguir o tratamento, à risca…

O mesmo acontece com o comando goto, que sempre foi um tabu para os programadores; os mais “modernos” (da “Era dos IDEs Gráficos”) talvez nem saibam que ele existe; são programadores que se formaram em plena “Era das Janelas”. Eu também me incluo neste contexto, pois trabalhei (e ainda trabalho) com formulários nas interfaces gráficas, usufruindo das benesses da “Programação Orientada a Eventos”, principalmente nos sistemas que exijam CRUD; uma maravilha!

Mas, e o comando goto!? Por que essa birra com esta inocente palavrinha?! Eu, sinceramente, não entendo! O argumento dos professores e instrutores “modernos” nos cursos de codificação em alguma linguagem, dizem que ele desestrutura o código. SIM, eu concordo, é a pura verdade: ele desestrutura o código, em algumas situações (bem dito!). E isto fatalmente acontecerá se o programador abusar do seu uso: em especial nos loops aninhados. Mesmo assim, cabe a pergunta: “Por que o C#, uma excelente linguagem ainda o permite na sua sintaxe, assim como muitas outras?” E uma outra pergunta bem inocente, mas que é uma bala de prata nos críticos mais radicais: “Qual é a diferença entre o “condenado” goto e o “inocente” break para terminar um case na estrutura switch?! Não seria mais lógico se existisse um endcase para terminar uma alternativa case, ou mesmo um par de chaves envolvendo o case?! Eu nunca vi ninguém falar mal do C# por isto! Pessoalmente, não costumo usar o goto E NEM ACONSELHO A USÁ-LO em situações normais (deixando isto bem claro, para não deduzirem que estou incentivando o seu uso); MAS, fazer, como faziam, as pessoas de antigamente em relação a Tuberculose – como se ele não existisse – não faz o menor sentido! Uma bobagem para justificar o ego com o seu “eu sou mais moderno que você”; bullshit, como dizem os americanos!

Então, a minha sugestão é seguinte: se algum dia VOCÊ estiver desenvolvendo algum sistema complexo, com centenas de linhas de código (como eu já enfrentei com o Clipper, quando era programador lá na Bahia), com dezenas de estruturas de controle, e lá pelas tantas precisar de alguma solução de desvio, mas que não esteja conseguindo através de alguma estrutura recomendada pelo paradigma-padrão, e com o usuário (no caso, o seu chefe) querendo o programa “prá ontem”, não se faça de rogado: use o goto e seja feliz; pois pode ser ELE que vá garantir o seu emprego!

Situações desesperadoras, às vezes, exige medidas heterodoxas, pois nestes casos vale mais a praticidade americana de um Angus MacGyver do que a elegância britânica de um James Bond!

Portanto, amigo programador iniciante, acostume-se a desconfiar de alguns arautos da “moderna” programação, que insistem em pregar a inexistência do goto; porém, acredite: ELE EXISTE! Mas, se ficar na dúvida, mire-se naquele velho ditado espanhol que diz: “Yo no creo en brujas, pero que las hay las hay”.

Um código-exemplo, tirado de um capítulo do meu futuro livro (em desenvolvimento) “Curso Básico de C# – Uma Abordagem Moderna”, é mostrado abaixo, onde uso o “proibido” goto em substituição ao “permitido” break. Funciona perfeitamente, e o código não fica confuso, e nem “acovardado”, como diria o tal velho político citado no título deste post!

————————————————————————

Nota: O meu livro “1001 Programas Prontos Para Você Codificar Na Sua Linguagem Preferida” já está disponível. Mande e-mail para [email protected]

————————————————————————

Mario Leite

Mário Leite é natural de Tombos (MG); estudou física durante dois anos no Instituto de Física da UFRJ; foi aluno de Iniciação Científica no Centro Brasileiro de Pesquisas Físicas (CBPF) e do CNPq, no Rio de Janeiro. É graduado e pós-graduado em engenharia pela Pontifícia Universidade Católica do Rio de Janeiro (PUC/RJ), onde foi professor auxiliar de ensino e pesquisa do Departamento de Ciências dos Materiais e Metalurgia. Tem especialização em Análise de Sistemas pelo Centro Universitário de Maringá (UniCesumar) e mestrado em Engenharia de Produção pela Universidade Federal de Santa Catarina (UFSC). Atualmente é professor-tutor de Técnicas de Programação e Ferramentas Computacionais na Universidade de Uberaba (UNIUBE), e autor de vários livros na área de programação.

Leave a Comment

Your email address will not be published.