Programação Orientada a Objetos em C puro: o caso do htop
-
Hisham Muhammad
Desenvolvedor de software livre desde 2000. Autor do monitor de processos htop (http://hisham.hm/htop). Lead developer do LuaRocks, o gerenciador de pacotes da linguagem Lua (http://luarocks.org). Co-fundador da distribuição GoboLinux (http://gobolinux.org). Graduado na UNISINOS em 2002, Mestre pela PUC-Rio em 2007 e atualmente doutorando na PUC-Rio. Mais em http://hisham.hm/
Nesta palestra vou apresentar as técnicas que utilizei no desenvolvimento de uma aplicação real em C, o monitor de processos htop (http://hisham.hm/htop, disponível no repositório de sua distribuição Linux favorita). O htop é uma aplicação interativa para console, escrita em C usando a biblioteca ncurses, mas foi feita usando um estilo de programação totalmente orientado a objetos.
Veremos que programadores em C não precisam se render ao C++ para colher os benefícios da orientação a objetos nos seus programas.
A abordagem que será apresentada é extremamente minimalista, e não depende de bibliotecas ou frameworks para programação OO.
Apresentarei as estruturas de dados usadas na construção do htop, e com isso discutiremos algumas técnicas para simplificar a gerência de memória em uma linguagem sem coleta automática de lixo como C.
Veremos como é possível utilizar todos os conceitos típicos de orientação a objetos (herança, subtipagem, polimorfismo) implementando-os diretamente.
Programando em C, entenderemos melhor o overhead de desempenho de cada um destes recursos, e podemos “pagar o preço” somente quando necessário.
Usando um estilo de programação disciplinado, veremos como é possível “domar os ponteiros” de C e tornar os segmentation faults fenômenos infrequentes (sim! é possível!).