Programação Orientada a Objetos em C puro: o caso do htop

  • avatar 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!).