Calculadora (Red + GUI) – o mais difícil é saber quando parar.

O Taq postou um twitter (mesmo início do artigo anterior) sobre um manifesto reclamando da dificuldade no desenvolvimento de software e pedindo mais simplicidade. Respondi com um link do Carl Sassenrath que já reclamava em 1997. Interessante ler também a definição de simples. Mais tarde eu olhei alguns aplicativos feitos com Electron que permite um desenvolvimento mais multiplataforma. Vi algumas calculadores.  Algumas poderia baixar apenas para Windows ou Linux e Windows e pouca coisa para Mac. Só uma era PWA e podia usar no Android. Todas com um tamanho monstruoso. Não vi nada de simples. No final de semana, resolvi criar uma para testar. Nada melhor que usar Red para ver a diferença.

Ok. Comecei a desenhar a calculador e incluir os botões para as operações. Me deparei com dois grandes problemas:

  1. Como era muito simples incluir as funções, se eu não parasse, iria ficar uma calculadora com milhares de opções e eu demoraria mais do que o tempo que eu pretendia dispor e,
  2. cada nova função precisava de um novo botão e eu teria que ver onde seria colocado.

Eu gostaria de ter apenas essas preocupações no desenvolvimento dos meus programas. E quem não? Bem, parei, dei uma polida no visual e nas funções e pronto. Desenvolvi no Windows e, como o GTK ainda não está na árvore principal, fui obrigado a entrar no Linux para compilar e testar. Já aproveitei e testei no Raspberry Pi. Não tenho Mac para testar.

Acima o resultado do trabalho. A primeira rodando no Windows, a segunda no Linux, a terceira no RPi e a quarta no RPi via SSH pelo Linux. O fonte ficou com 60 LOC. A geração do executável para Windows ficou com menos de 1M. Para Linux e RPi ficaram com mais de 1M. De qualquer forma, pelo menos 1/30 do tamanho dos executáveis criados pelo Electron. E, exagerando um pouco, o tempo para digitar 60 linhas é o mesmo para instalar o Electron.

Atualmente é necessário clicar para entrar com os números. A próxima atualização será o reconhecimento do teclado para a entrada dos número, ponto decimal, limpar o visor (C) e o excluir último caractere (backspace) A nova versão que está no github já permite a entrada pelo teclado dos números, ponto decimal, as quatro operações, limpar o visor “C” e o último digito “Backspace”. Mas já estou pensando em aumentar as funcionalidades da calculadora.

Ok. Acabei de receber um screenshot do programa rodando no Mac (feita pelo R cqls que está fazendo um excelente trabalho no desenvolvendo o bind para GTK).

 

O código:

Para outras informações e manter-se atualizado:  github