Porque eu reescrevi o Quivi do zero

Joel Spolsky, programador conhecido, disse em seu blog:

(…) Eles [da Netscape] fizeram isso tomando a pior decisão estratégica que uma compania de software pode fazer:

Eles decidiram reescrever o código do zero.

Em concordo, a princípio. Muitos projetos anunciam que foram “reescritos do zero” como se isso fosse algo maravilhoso, e na maioria das vezes, é só um sinal que a nova versão provavelmente tem mais bugs que a anterior.

Mas peraí, eu acabei de reescrever o Quivi (um visualizador de imagens e leitor de HQ’s / mangás) do zero! Por quê, então?

Bom, pensei que seria necessário me justificar. Essas são as razões:

  • É um projeto pequeno. Reescrevê-lo com certeza não é tão difícil quanto reescrever um navegador!
  • Eu não aguentava mais C++ (a linguagem de programação que eu utilizava). Claro, isso não é exatamente culpa do C++. Ele tem seus usos — a ferramente certa para o trabalho certo, e tudo o mais. Mas para escrever um programa de desktop? É canhão para matar formiga. Se você consegue (e gosta!) de fazer isso, eu admiro você. Mas eu não tinha mais motivação para trabalhar no Quivi.
  • Eu adoro Python (a linguagem de programação que eu uso agora), e claro,
    não sou o único. Programar é divertido em Python, tanto que eu tive a motivação de reescrever tudo, para começo de conversa! E claro, agora vai ser muito mais fácil para eu continuar trabalhando no Quivi.
  • Eu podia mudar de bibilioteca de interface. O SmartWin é uma boa bibilioteca, e use templates de formas interessantes; enquanto eu programava o Quivi eu acabei participando do desenvolvimento do SmartWin também. Mas ele tem os seus bugs, e justamente porque ele usa templates extensivamente, compilar um programa que o utilize é lento demais. Eu mudei para o wxPython, que é uma biblioteca de interface muito madura — e multi plataforma ainda por cima.

Claro, existem algumas desvantagens com a mudança. O pacote inteiro é muito maior devido às dependências (o instalador foi de 900K para 5MB!). E o programa é um pouco mais lento, principalmente na inicialização, e usa mais memória (9MB para 30MB com nenhum imagem aberta). Mas eu acredito que foi um bom compromisso.

Reescrever do zero deve ser estudado com cuidado, e neste caso, acredito que foi uma boa idéia. O Quivi é um hobby, e acho que o ponto principal é me divertir escrevendo ele, e atender às necessidades dos usuários. Espero que eu consiga fazer os dois com esta nova versão (que será lançada em breve).

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*