Ola pessoal,
Nas últimas duas semanas a lista de Java ME do SouJava (para se inscrever envie e-mail para j2me-list-subscribe@soujava.dev.java.net) o assunto a respeito do futuro das plataformas mobiles e do próprio JME voltou a gerar flames e opiniões acalouradas e bem parciais ;-) (me incluo nessas opiniões).
Então, resolvi escrever um pouco sobre essa pergunta "maldita": Qual a melhor plataforma móvel?
O Cardápio
Antes de qualquer coisa, é preciso saber quais são as opções entre plataformas e linguagens que demos povoando o mercado:
- Symbian (S60): Presente principalmente nos smartphones da Nokia.
- iPhone OS: Sistema operacional criado pela Apple para o iPhone
- Android: SO criado pelo Google e já adotado pela HTC e Motorola. Logo, Sony Ericsson.
- Linux: Algumas distribuições de Linux já foram vistas povoando alguns celulares, como a A1200 da Motorola.
- Plataformas proprietárias: Para os dispositivos mais simples (não smartphones) as fabricantes possuem seus próprios SOs, mais simples.
Porque eu não coloquei o Java como uma plataforma móvel junto com as demais acima? Porque ali preferi listar os SOs, e que são de fato uma plataforma. O Java ME ou FX Mobile são especificações ou linguagens e que com excessão do iPhone OS rodam em todas as plataformas citadas.
Ou seja, podem espernear e gritar a vontade, mas quando se fala em número de aparelhos que sua aplicação pode alcançar, uma aplicação em Java ME tem muito mais potencial do que as demais.
Recursos nativos x Java
É (muito) óbvio dizer que Objective-C (iPhone) ou Symbian possuam mais recursos do que JME por um simples motivo: são as linguagens nativas do telefone. Então é claro que o acesso a um recurso novo ou diferenciado vai estar disponível primeiro nessas linguagens.
Entramos então na questão de que o JCP (Java Community Process) que foi criado para ajudar no crescimento do Java está na verdade atrapalhando o JME, mas isso é assunto pra outro post (bastante polêmico por sinal...), já que ele demora em especificar a API para novos recursos, exemplos: MIDP 3, Location API 2.0 e outras...
Mas, o que dizer de recursos já sedimentados como o bluetooth por exemplo? Eu não preciso aprender como Symbian ou como o Objective-C trata isso, eu preciso saber apenas a API da JSR-82 e eu teria meu aplicativo compatível com todos os devices... lindo não?
E a resposta pra pergunta maldita?
Poderia escrever uma dissertação de mestrado sobre essa pergunta, usar diferentes aspectos de comparação e então chegar a uma conclusão e mesmo assim teria milhares de pessoas que iriam contestar, esperniar e me xingar. Então, eu vou usar uma linha de raciocínio bem simples: número de potenciais clientes.
O pessoal no geral fica se degladiando sobre os SOs dos smartphones e com recursos super modernos, que se pegarmos o Brasil, estão na mão de menos de 30% do usuários de telefone celular.
Então, temos um número enorme de pessoas usando celulares low-end que custam menos do que 150 dólares com recursos (pasmem!!) ainda limitados. Sim, são MILHÕES de celulares sem touch-screen, GPS ou acelerometro? Incrível não?!?! É, mas isso existe ainda! ;-)
E acredite, essas pessoas consomem e também querem utilizar seu celular para algo mais além de simplesmente telefonar, cabe a nós (desenvolvedores, designers, pesquisadores, gerentes, etc) oferecer a esses usuários serviços e softwares simples de usar e bonitos.
E adivinhe só, qual a linguagem que "ataca" principalmente esses telefones? Sim, é o "condenado" Java ME! Não há números exatos (e seria quase impossível conseguir algo verdadeiro), mas o número de celulares low / middle end é esmagadoramente maior do que o número de smartphones disponíveis por ai.
Além disso, seu aplicativo Java também irá rodar nesses smartphones (menos no iPhone).
E o mercado corporativo?
Vamos imaginar uma situação e VOCÊ responde:
Seu cliente chega e diz que precisa colocar em campo uma força de vendas automatizada, mas esses trabalhadores também vão usar o dispositivo para fazer ligações, ou seja, são telefones celulares. E ele tem um contrato com uma operadora para conseguir os telefones mais baratos e que além disso ele já tem uma base com vários Nokia, Motorola e alguns LG (!!) mas que ele ta pensando em adquirir mais alguns que você aconselhar.
Ah, e além disso, esse telefone passa por situações onde ele pode cair, riscar e em sua grande maioria é operado por pessoas com pouco relacionamento com a tecnologia.
Me diga você, o que você escolhe?
Bom, podem começar os flames e xingamentos. Mas essa é a minha opinião, pois apesar de não ser algo com totais recursos, continua sendo uma linguagem de fácil aprendizado, menos segmentação e maior número de possíveis usuários.
Abraços
Neto