Desenferrujando

Esse fim de semana prolongado eu resolvi estudar C++ só pra desenferrujar o cérebro. O pior é que eu fiz isso do jeito mais difícil, no Linux. É nessas horas que todo programador sente falta do Visual Studio (da Microsoft). No linux a minha IDE toda hora trava e some (ela é feita em C puro e, provavelmente, ela não é bem testada) me deixando completamente na mão. Como a minha segunda opção é “não usar a IDE” resolvi aprender o basiquinho do compilador (GCC) e fazer as coisas na mão. Depois de 15min programando e debuggando ferozmente eu fiquei TOTALMENTE entediado de passar o mesmo comando e resolvi pesquisar uma solução para esse trauma. Eis que descubro as maravilhosas autotools (automake, autoconf, libtools etc). Não é que facilita?? O problema é que agora quem tem que gerir o arquivo de configuração da compilação (AKA Makefile) sou EU! Ou seja, não tem escapatória! Ou eu me ferro, ou eu me arrebento =/.

Apesar de tudo, eu consegui evoluir alguma coisa (sim… agora eu sei fazer um arquivo de configuração da compilação na mão e sei usar o GCC basicamente). É “muito bom” voltar a ter aqueles probleminhas de ponteiros e outras coisas específicas de linguagens C-Like. Faz pensar em como a máquina funciona, exercita a memória (não tenho intellisense) e me faz amar cada vez a padronização do Java.

Descobri que em linux (mais especificamente no universo de linux que eu tô me embrenhando – GNOME) os frameworks são muito parecidos com os frameworks comerciais. Como em Java e .Net a GLib funciona num esquema em que todos os objetos são descendentes de um objetido do tipo (pasmem) GObject. Ok, ok… em C/C++ eu POSSO não seguir nada isso ^.^, mas o bom senso acaba obrigando a ser assim. Dessa forma o framework coloca a prova toda a habilidade do programador em fazer uso de ponteiros, alocação dinâmica (que em C++ não é tão trivial assim porque temos que tomar conta do ciclo de vida das variáveis) e uso do próprio framewok.

Descobri que existe uma tool de documentação padronizada chamada GTK-Doc bem poderosa e segue bem de perto os padrões do Javadoc.

Se você é um pouco mais experiente deve estar me achando louco de misturar tanto C com C++ mas na realidade eu não faço isso por conta própria, eu tenho usado os wrappers de C++ (porque eu não sou louco)  para isso. Sendo eles GTKmme GLibmm. Bem melhor que me destruir fazendo tudo no braço.

Depois escrevo mais.

~ por Vinicius Menezes em Segunda-feira 27 Abril, 2009.

Deixe uma resposta