Finalmente, 2007 – o ano da virada – o excelente Apple iPhone é lançado. É a primeira vez que podemos nos empolgar novamente por um dispositivo. A Apple fez muito bem a lição de casa e isso lhe garantiu atingir os valores mais altos em suas ações e a vender já quase 2 milhões de dispositivos. Um número histórico. Não preciso detalhar, todos já conhecem exaustivamente essa história de sucesso.
Por outro lado é a primeira vez que um sistema operacional Unix completo, com todas as características de memória protegida, multi-tarefa preemptiva e aceleração gráfica em hardware chega a um aparelho tão pequeno e bem desenvolvido. O iPhone roda uma versão mais leve do mesmo Mac OS X Leopard que roda nos desktops e notebooks. E mais, utiliza o mesmo framework Cocoa e todas as tecnologias Core (Image, Audio, Animation, etc) que tornam o desenvolvimento em Objective C para Mac tão confortável.
Ou não? Polêmicas surgiram porque o iPhone era fechado para desenvolvimento. Jailbreaks, unlocks, e uma guerra entre a comunidade e a Apple teve início. Até fevereiro talvez tenhamos uma solução amigável para isso, quando a Apple deve lançar o SDK para desenvolvedores. Nessa ocasião, o melhor fone terá o melhor SDK … Será?
Evolução só se consegue com Concorrência. E essa concorrência veio na forma da única empresa no mundo hoje que poderia fazer isso: o Google. Todos esperávamos que ela lançasse um “gPhone”. Em vez disso ela anunciou uma parceria sem precedentes entre vários pesos pesados da indústria de tecnologia e de telebom para o lançamento de uma plataforma aberta que todos poderiam utilizar: Android. A Engadget tem os detalhes.
Android ainda é um protótipo. Não há nenhum aparelho no mercado capaz de rodá-lo. Ele busca muita inspiração no modus operandi dos iPhone, incluindo um perfil de utilização com telas touch-screen e aceleração gráfica com animações em 3D. Seu núcleo é uma versão customizada de GNU/Linux (yet another distro) com aplicações desenvolvidas especialmente para o estilo de uso de um Smartphone.
Seu SDK? Eclipse. Uma de suas linguagens? Java. Porém, não é o mesmo Java que usamos no desktop – oh não! A Apple não trouxe Java 6, o Google não trouxe Java 6!. É uma versão altamente customizada chamada Dalvik. O Java atual não é capaz de rodar adequadamente em hardwares menos potentes. JME é ruim demais para se considerar para um Smartphone da nova geração, com telas widescreen de alta densidade. A linguagem Java era desejável, mas não sua virtual machine. Logo, resolveu-se criar uma nova VM com um novo byte-code, incompatível com o antigo. O blog Crave tem os detalhes, mas essencialmente estão certos: é mais um novo padrão para se suportar e mais um desvio do conceito inicial de “Write once, Run anywhere” (isso não existe mais, na prática). Dadas as circunstâncias foi o melhor caminho a se tomar: “você não deve se curvar ao software, o software deve se curvar a você”, e o Google obviamente não quer se curvar :-)
De qualquer forma, a plataforma Android será um excelente catalisador para este mercado. Com certeza obrigará a Apple a andar mais depressa o que é excelente. Em um jogo é preciso pelo menos dois para começar. Não consigo imaginar ninguém melhor do que Apple e Google para participar desse jogo. Na minha opinião, a Apple ficará com o mercado premium – que prefere dispositivos mais elegantes e com melhor acabamento tanto de software quanto hardware – enquanto o Android pegará os usuários corporativos que precisam de software especial e o mercado de smartphone mais baratos que não se incomodqm tanto com um aparelho menos potente ou com hardware com menor qualidade. Basicamente, o mesmo perfil que existe hoje no mundo dos desktop.
Mas, ainda não existe nenhum aparelho que possamos comprar e usar, portanto qualquer opinião a respeito da qualidade e real usabilidade desse sistema ficará para o ano que vem. A plataforma Linux está se fragmentando mais, mas isso não é relevante: é preciso alguém de visão para direcionar o software num caminho claro, e o Google deve cumprir esse papel melhor do que ninguém. A fragmentação pode (e precisa) diminuir quando as comunidades de outras distros menores começarem a convergir ao redor do mais famoso, assim começa o processo de defragmentação tão necessária para criar uma experiência de usuário coerente e uma linha mais clara de desenvolvimento.