terça-feira, 13 de julho de 2010

Azedumes de ignorante

Decorria mais uma aula de Linguagens de Programação na ULP (Universidade Lusófona do Porto). O professor, baixo com um carácter altivo, impunha a elaboração de um programa em JAVA que permitisse ao utilizador gerir as actividades do dia-a-dia. O modo como a aplicação armazenasse a informação ficava ao critério do aluno. No entanto, o professor sugeria a elaboração de um sistema de ficheiros vulgar.
O André, que era aluno assíduo da disciplina de Bases de Dados logo se propôs a utilizar os conceitos que ia adquirindo na área, afins ao desenvolvimento em motores de bases de dados ORACLE. A sua preferência pelas versões mais recentes levou-o a considerar a última versão no mercado desta tecnologia, nomeadamente, a ORACLE 11g.
No dia da apresentação dos projectos, a grande maioria dos alunos previa a aplicação dum sistema de ficheiros. Contudo, o André estava empenhado em lograr com o recurso a um sistema amplamente desenvolvido e testado que se prestasse aos mesmos fins. Depois de submeter a sua ideia à avaliação do professor, este pergunta-lhe com visível arrogância:
- Então, está a pensar em utilizar o motor ORACLE 11g. Acha mesmo que consegue?
O André returque prontamente:
- Claro que sim, professor.
O professor, esboçando um riso sarcástico, responde:
- Fico à espera que isso aconteça.
O rapaz estava confiante que conseguiria levar a sua ideia a bom porto. Em pouco tempo contornou todos os problemas inerentes à instalação das tecnologias necessárias e passou ao desenvolvimento da aplicação requerida, após elaborar a interface de interacção do seu programa com o utilizador.
Além dos requisitos requeridos pelo avaliador, o André teceu alguns melhoramentos que considerou pertinentes no seguimento do trabalho que se propôs desenvolver. Qualquer hipótese que pudesse ser alvitrada aferente à possibilidade da obtenção do código de um programa do género na Internet seria descartada à partida, uma vez que não é pertienente, de modo algum, desenvolver uma aplicação com características tão simples utilizando um recurso tão extenso e elaborado como a tecnologia 11g. O André considerava esta hipótese como sendo intuitiva e irrefutável.
Chegada a hora da apresentação do seu trabalho, o André logo começa a preparar o aparato necessário para atingir o seu fim. Liga o seu MAC onde tinha instalado, numa segunda partição, a versão mais recente do Windows Server, sistema operativo de servidor onde conseguira instalar o respectivo recurso de base de dados.
- Então? – Pergunta, impacientemente, o professor, demonstrando novamente um trejeito de arrogância – Porque é que isso ainda não está a funcionar?
Responde o André, com a sua habitual boa disposição:
- Calma, professor, isto leva o seu tempo.
O sorriso sarcástico abandona a fronte do professor no instante que este vê o programa a funcionar em pleno. O André tinha conseguido aquilo a que se tinha proposto. Na esperança de encontrar alguma falha, acrescenta:
- Ainda não vi nada a funcionar!
O André demonstra o funcionamento do seu programa, expondo as ferramentas utilizadas para apreciação do professor e dos demais espectadores. A hipótese de que o programa se ligava a uma tecnologia tão elaborada depressa se tornou um facto. Quando o André se preparava para expor os passos que seriam necessários tomar para configurar a ORACLE 11g, o professor remata:
- Não quero saber disso para nada! Só me interessa o código.
Nesse instante acabara de mostrar a sua altivez e arrogância, característica de uma pessoa verdadeiramente bruta e estúpida. Exige analisar o teor do trabalho, na sua essência. Duas características, para além do sistema de bases de dados, eram passíveis de ênfase. A primeira, consistia no modo como se codificava, em JAVA, uma ligação à base de dados. A outra, mais orientada para a apresentação, baseava-se em SWING, livraria vocacionada para a criação de interfaces de utilização visuais. O André logo se propõe a expor a sua linha de raciocínio nestas áreas. Quando se preparava para fazê-lo, é novamente interrompido pelo alarve professor que, de imediato, começa a rebuscar o código com o perverso intuito de desacreditar o autor do trabalho.
- Diga-me lá! – assevera ele – Para que serve aqui a função finalize?
Returque-lhe, o André de uma forma assertiva:
Esta função é chamada sempre que um objecto é destruído. Utilizei-a para garantir o encerramento da conexão quando o objecto que a gere deixa de ser referenciado.
O professor, insatisfeito, garante-lhe que não se tratava de uma resposta válida e insiste no tema durante um tempo, referindo o facto de que o autor não controlava o tempo em que tal função seria chamada no programa. De facto, o objectivo era garantir o encerramento de uma conexão, caso se tivesse esquecido de fazê-lo manualmente. O instante em que a conexão é encerrada adquire, neste contexto, um carácter de irrelevância.
Com um estado de espírito cada vez mais pesado, o avaliador rebusca o código novamente. Finalmente encontrara o calcanhar de Aquiles do André, centrando-se num pormenor tão irrisório que o remete para o estatuto de ignorante incapaz de ensinar numa disciplina da área. Pergunta-lhe para que serve o carácter @ numa linha onde se lia

@SuppressWarnings

Ora, esta declaração consiste precisamente numa anotação (metainformação associada a um elemento de JAVA) cujo propósito é ser utilizado por determinadas ferramentas como o compilador ou o javadoc. O André conhecia o efeito mas não estava ciente do princípio. Responde-lhe então:
- Isso não sei, professor. Contudo, se remover essa linha, o meu código continua a funcionar apesar do compilador debitar um ror de avisos.
Apesar da resposta prática do André, o professor insiste no significado do @ na linha correspondente. Depois de insistir num pormenor tão insignificante, conclui erroneamente:
- Atribuo-te a nota zero no trabalho. Este, foi realizado por um profissional muito melhor do que eu. Foi esse mesmo profissional quem te configurou o motor de base de dados.
Evidentemente, o André não se conforma com a avaliação e remete o caso para a provedoria. O seu programa fica conhecido no meio docente e o professor, com um comentário tão ignóbil, deixa de ter autoridade moral para ser docente, na medida em que foi ele o verdadeiro autor de tal programa.