ClubePalm 2003
Por: Guilherme C. Hazan
Atualizado em 21/07/2003 para o SuperWaba 4.0
No início de 2000, tendo experimentado o KVM, que estava ainda na versão beta, me deparei com o Waba, uma maquina virtual Java para handhelds, que também estava na versão 0.9 beta. Foi amor à primeira vista. O Waba era muito simples de trabalhar, e ao final de uma tarde eu tinha meu primeiro programa Palm rodando no meu PalmProfessional. Procurei então desenvolver um programa financeiro utilizando o Waba, mas não consegui: o Waba se propunha a ser uma ferramenta simples, mas era simples demais. Não havia, por exemplo, como inserir um registro no meio do banco de dados, mas somente no final. Comecei então, a adicionar algumas funções ao Waba, e, querendo dividir estas melhorias com outros usuários, criei o SuperWaba. Na verdade, minha intenção era que o Rick Wild, criador do Waba, fundisse as duas versões, mas isso nunca ocorreu.
Nas horas vagas, após o meu expediente de trabalho, continuei aprimorando o SuperWaba para o PalmOS, plataforma que eu procurava dominar. Até a versão 1.21, o SuperWaba era apenas uma versão melhorada do Waba, com uns poucos métodos nativos a mais e algumas classes, como Window (no Waba original não haviam janelas popup!). Um colega da comunidade portou meu código para o Windows CE, e assim o SuperWaba se tornou realmente multi-plataforma (PalmOS e WindowsCE).
Eu sempre ouvira falar que os Palms possuíam suporte à escalas de cinza, apesar de o PalmOS utilizar apenas o modo monocromático de duas cores. No início de 2001, decidi então tentar realizar o grande sonho: adicionar suporte a 4 cores para todos os programas SuperWaba. Depois de algumas pesquisas, consegui descobrir como fazer para entrar em modo de 4 cinzas, utilizando uma rotina em assembler 68000. Muito bem, mas como a API do PalmOS suportava apenas duas cores nestes modelos (PalmProfessional, PalmIII, IIIe, IIIx VII, e alguns modelos V), eu teria que refazer toda a API gráfica para suportar as 4 cores!
Depois de 8 meses de muito trabalho e pesquisas, a API gráfica estava refeita, boa parte dela em Assembler 68000. Acrescentei suporte a inúmeras funções gráficas que não existiam no PalmOS original. Refiz os controles gráficos de modo que eles aproveitassem as 4 cores e foi possível adicionar efeitos 3d aos controles originais e sem graça do PalmOS. Adicionei também um visual diferente para quando um controle estivesse desabilitado (por incrível que pareça, no PalmOS não existe conceito de controle desabilitado).
Adicionei também muitas classes, suporte a precisão de 64 bits (tipos double e long), suporte a bibliotecas em C e em Java (até então, a única forma de se adicionar bibliotecas nativas era mudando a máquina virtual - e, conseqüentemente, tornando-a incompatível com a versão oficial), fontes customizáveis, diterização automática de imagens coloridas, suporte a sprite e detecção de colisão (para jogos), janelas popup e arrastáveis (exclusividade SuperWaba!), Threads, além de melhorias propostas e enviadas por membros da comunidade, como suporte a USB, IR e Bluetooth, e aos modelos de Scanner da Symbol Technologies. Além de tudo isso, testando mais de 100 otimizações no interpretador, eu dobrei a velocidade do SuperWaba em relação ao Waba original.
Em Outubro de 2001, me demiti da empresa onde trabalhava, ganhando um salário fabuloso, para me dedicar integralmente ao projeto dos meus sonhos. Desde então, o SuperWaba melhorou bastante. Fiz um novo gerenciador de memória com coletor de lixo, disponibilizando aos programas toda a memória do Palm, caso necessitem (para se ter uma idéia, o Waba original tinha 16kb de memória disponíveis, e o SuperWaba, antes do novo gerenciador, 50kb). Foi também adicionado suporte a Exceptions.
Em Julho/2003 o SuperWaba estava com mais de 10000 usuários cadastrados, em mais de 140 países. Estudantes, empresas de pequeno e grande porte (receita anual acima de 10 Bilhões de dólares) são os maiores utilizadores do SuperWaba. O interessante, dentre estes clientes, é que nem sempre a empresa é uma empresa de informática, mas sim de serviços, alimentação ou mesmo correios, que criaram pequenas equipes de informática para tentar resolver seus problemas, e com o SuperWaba conseguiram.
Vale lembrar que o SuperWaba é distribuído sob a licença Lesser General Public License (LGPL - www.gnu.org), e sendo assim, vem com o código fonte junto e é ROYALTEE FREE. Ou seja, a empresa não paga nada para distribuir produtos feitos sob a plataforma.
Na próxima matéria, falarei sobre as vantagens em se adotar a plataforma SuperWaba como ferramenta de desenvolvimento para sua Empresa, dando um exemplo de aplicação e mostrando toda a sua potencialidade. Nesse meio tempo, sugiro que você abaixe a última versão no site www.superwaba.com.br.