Quando a Palm lançou seu primeiro HandHeld, ela revolucionou e praticamente criou uma nova categoria de computadores. Tanto fez que muitos ainda chamam os HandHelds de Palms, mesmo sendo produzidos por outros fabricantes.
Durante anos dominou com folga o mercado, até que os celulares tornaram-se onipresentes e os smartsphones começaram a roubar-lhe o mercado. Eles até tentaram recuperar-se com seus smartphones Treos. Mas o atraso com que evoluíram o sistema foi aterrador.
Perderam o mercado de forma assustadora nos últimos anos.
Até que, agora em janeiro de 2009 finalmente mostraram o novo sistema webOS e seu smart-phone Palm Pre. A maioria das análises que encontrei por aí enfatizaram o quanto o novo celular é bonito e parecido com o iPhone.
Esta semana o pessoal da Palm publicou o primeiro capítulo de um livro falando sobre o novo sistema operacional. Eu analisei o documento de nove páginas e fiquei ansioso pelo que está por vir.
Aguardo o lançamento do SDK (ambiente de desenvolvimento) do webOS e mais detalhes do ambiente.
O documento liberado começou a mostrar alguns detalhes técnicos importantes. O sistema é baseado em padrões Web: html, css, javascript. Para programadores Web como eu, diminui muito a barreira de entrada para desenvolver para o ambiente.
A interface das aplicações é toda descrita em HTML e a funcionalidade por javascript. A aparência padrão dos Componentes prontos de interface (widgets) pode ser modificada por CSS. Os componentes internos do aparelho estão disponíveis por API Services. Não deram detalhes, mas pareceu-me que serão acessíveis como Web Services. Se assim for a flexibilidade e facilidade do desenvolvimento será enorme.


Outra característica importante do sistema é que foi desenvolvido deste o núcleo para ser multitarefa. O kernel é o Linux 2.6. A interface, não só permite, mas estimula a execução de vários programas ao mesmo tempo. Baseados em uma metáfora de um baralho, cada tela de aplicação é uma carta. Os programas manipulam a criação e fechamento das cartas, e também o usuário, através do gesto de empurrar a carta para fora da tela. Veja nas figuras acima. Assim, um programa de email pode permitir abrir vários email ao mesmo tempo, um em cada carta. É comum ao redigir um novo email, consultar informações em vários emails anteriores ou mesmo outros programas. O sistema de colar e cortar também está disponível para esta interação acontecer naturalmente.
Os macmaníacos que me perdoem. Estão dizendo que o equipamento é uma cópia deslavada do iPhone. Mas as metáforas são outras, e os principais gargalos do celular mais espantoso de todos os tempos foram resolvidos de forma primorosa neste novo sistema. Vendo a forma com que o novo webOS lida com multitarefa, eu realmente percebi o sentimento de estranheza que tinha com o iPhone.
Um artigo de Ryan Paul no Arstechnica sob o webOS levanta apenas uma dúvida a respeito da performance de um sistema todo baseado em Web. É algo que teremos que esperar para ver. O Pré ainda não foi colocado a venda, e nem para análise independente. Fica a dúvida.
Mesmo com a questão da performance, parece-me que o equipamento é muito promissor. Das informações sobre SDK de móbiles que li nos últimos anos (Iphone, Android, etc.), este sem dúvida é que deixou mais entusiasmado.
Para abrir o apetite, um pouco de código:
Html indicando um componente de interface (Botão Liga/Desliga):
<div x-mojo-element="ToggleButton" id="meuLigaDesliga"></div>
Veja que usa div com o parâmetro especial “x-mojo-element” para indicar o componente Widgets que será utilizado em uma interface.
JavaScript capturando um evento:
this.controller.setupWidget(
'meuLigaDesliga',
this.toggle = { property : 'value' },
this.toggleModel = { value : true, disabled : false }
); // modifica o componente definindo a propriedade valor
//com os booleandos true e false, conforme
//o botão estiver ativado ou desativado
this.controller.listen(
'meuLigaDesliga',
Mojo.Event.propertyChange,
this.togglePressed.bindAsEventListener(this)
); // Cria o manipulador de Eventos ativo quando captado
// mudanças na propriedade valor do botão.
Lembrou-me um pouco o JQuery.
Css mudando a aparência padrão:
#meuLigaDesliga {
float:left;
}
Este último nem precisa comentário.
Aguardo a publicação do SDK. Assim que chegar prometo publicar aqui uma aula de programação para este novo ambiente móbile.


Revolucionário este sistema da Palm. Se der certo, será uma mão na roda para os desenvolvedores web.