Considerando smartphones de 64 bits

Phil Schiller apresentando o A7 com 64 bits

Muitos pensaram que a jornada da indústria em se adaptar à computação de 64 bits tinha se encerrado há muitos anos — eu mesmo, há quase quatro, pensei nisso falando da Apple, ao completar sua transição com o lançamento do então Mac OS X 10.6 (Snow Leopard). Algumas semanas mais tarde, a Microsoft faria o mesmo lançando o Windows 7 no mercado e levando todas as fabricantes de PCs para o mesmo barco, no qual também já temos outros sistemas operacionais baseados em Linux e UNIX há alguns anos.

Caso encerrado? De jeito nenhum. Quem diria que, em tão pouco tempo desde o advento da revolução móvel, o primeiro smartphone de 64 bits veria a luz do dia antes do final de 2013? A indústria realmente está se movendo adiante num ritmo assustador, mas quem acompanha uma empresa como a Apple nas entrelinhas da comunidade de desenvolvedores sabe que até alguns engenheiros comandados anteriormente por Steve Jobs e Bertrand Serlet descartaram as possibilidades de um processador de 64 bits chegar ao mercado mobile tão cedo.

Isso foi em 2009. Hoje, as possibilidades se converteram na realidade: o iPhone entrou para o mundo dos 64 bits.

Phil Schiller apresentando o A7 com 64 bits

Phil Schiller traz o dilema dos 64 bits de volta em 2013.

Sendo especialista em integração vertical de hardware e software, a Apple fez o iPhone ser o primeiro nesse quesito, o que não é uma surpresa. Isso não significa, contudo, que desenvolvedores e usuários finais tenham implicação zero em estar nessa posição.

A seguir, elaboro os significados das afirmações acima.

A transição que não precisou acontecer (ou já aconteceu)

Toda a indústria de PCs, inclusive a Apple, teve bastante trabalho para adaptar os seus produtos de hardware e software no setor para a computação em 64 bits. Foi uma jornada que durou quase uma década: o Windows XP já era 64 bits; embora não o tenha conhecido nesse sabor, ao longo dos anos tive relatos mistos de máquinas baseadas nele, alguns citando incompatibilidades em certas áreas. Problemas que a Apple tentou evitar com uma transição muito mais gradual, a partir do Mac OS X 10.3 (Panther).

Quando lançado, o Power Mac G5, antecessor do Mac Pro, vinha com suporte básico a 64 bits no Panther, visto que os seus processadores, na época produzidos pela IBM, eram de 64 bits. Até chegar ao nível de se desenvolver um aplicativo 100% nativo para Mac nessa arquitetura, a Apple trabalhou por seis anos no seu sistema operacional. No 10.4 (Tiger), já era possível trabalhar com essas aplicações desenvolvidas na estrutura do UNIX, mas ainda rodando sobre o kernel e os drivers de hardware em 32 bits. No 10.5 (Leopard), vieram as APIs para Carbon (quem lembra?) e Cocoa, as toolboxes nas quais todos os controles e tecnologias nativas do OS X permitem a criação de aplicações de alto nível. A fase final dessa jornada, como mencionei lá no início, veio no Snow Leopard, que trouxe tudo isso para os atuais Macs desde o kernel do sistema operacional, até chegar a todas as aplicações para os usuários finais.

Scott Forstall falando de chips 64 bits

Scott Forstall falando sobre 64 bits em 2006, já como executivo em plataformas na Apple.

Lembrando novamente, a Microsoft completaria o mesmo com o Windows na sua versão 7. Hoje em dia, vivemos tranquilamente em um mundo onde todos os computadores saem de fábrica em 64 bits. Mas ao custo de uma longa jornada, que no caso do iPhone, para o mercado, veio em um dia.

O iPhone 5s, como vimos, chegará ao mercado com o A7 totalmente em 64 bits, desde o hardware até o último bit de software do sistema operacional e dos seus aplicativos instalados. Seus benefícios estarão perceptíveis tanto para os desenvolvedores de aplicativos quanto para os usuários finais. Mas como isso foi possível? Como o iOS passou tão rápido pela jornada que a sua plataforma de origem e quase todo o mercado de PCs levou anos para atravessar?

O desafio de se manter uma plataforma em 64 bits está em fazer todo o software que a compõe “falar a mesma língua” do hardware. No caso da Apple com o OS X, isso levou anos considerando toda a bagagem que ele tinha e, talvez muito mais importante, que ele já teve. A transição gradual feita pela Apple foi convertendo o sistema inteiro em camadas, mas nem todas as tecnologias do passado fazem parte do que o compõe atualmente. Coincidentemente, o iOS, independentemente de todo o criticismo e as diferenças entre ele e os seus concorrentes, é fundamentalmente avançado por ter a mesma base tecnológica do OS X, já totalmente compatível com 64 bits há quatro anos.

Dessa forma, podemos concluir que os pontos de partida da Apple para um iOS 7 em 64 bits foram os frutos da transição bem-sucedida do OS X para a mesma arquitetura. Não foi trabalho de um dia, mas é um trabalho que merece elogios. Será de fato o exemplo que a concorrência tentará seguir, dentro do segmento móvel: direto da Coreia do Sul, já temos relatos de que a Samsung com certeza está empenhada em tomar parte na mesma investida, e outras certamente seguirão. O que não se sabe é como o Android e outros sistemas operacionais móveis serão preparados para isso, mas mantenho a melhor das expectativas para todos. Pessoalmente, acredito que o Android possa ter uma transição tranquila em função da abertura da plataforma — mediante o acompanhamento dos lançamentos de aparelhos —, enquanto o Windows Phone fica a um passo por ser baseado no kernel NT, o mesmo do Windows 8, também de 64 bits.

Implicações

Infinity Blade III rodando no iPhone 5s

Infinity Blade, com seus cenários cheios de elementos computados em tempo de execução, é um caso de sucesso para o A7.

Por incrível que pareça, talvez a maior parte das considerações a serem feitas no que diz respeito a um smartphone em 64 bits agora estão do nosso lado da equação — seja ele um iPhone ou não. A história não é muito diferente da época em que o Snow Leopard foi lançado: as reais vantagens de se trabalhar com uma plataforma 100% 64 bits estão no desempenho proporcionado pelos atributos destacados pela Apple no seu novo processador A7, como o seu conjunto moderno de instruções e os registradores, que podem processar muito mais dados de uma só vez.

O diferencial mais comum de se trabalhar em 64 bits é poder trabalhar com aplicações que exigem mais memória — mais de 4GB, precisamente, o atual limite em sistemas de 32 bits. No entanto, há outras vantagens além desta que serão mais evidentes neste primeiro momento do que isso. Primeiro, porque agora é difícil pensar em qualquer dispositivo móvel com 6GB ou 8GB de RAM por padrão — guardo aqui minha expectativa de não ser citado fora de contexto futuramente, como já acontece com o Bill Gates há 30 anos.

Os ganhos dos processadores de 64 bits em dispositivos móveis partem basicamente de uma premissa: com os seus conjuntos modernos de instruções e todos os seus registradores, eles podem fazer cálculos e processar informações muito mais rapidamente. O ganho em desempenho vindo desse lado é muito mais imediato para desenvolvedores e usuários finais, ainda que seja apenas em alguns casos.

Analisando esse fator no contexto do iPhone, vários tipos de tarefas podem ser beneficiadas:

  • Navegação, com o aumento no desempenho de execução de JavaScript e processamento de páginas web no Safari;
  • Jogos, que fazem largo uso de cálculos e processamentos de elementos em tempo real;
  • Processamento de imagens e vídeos em diversas categorias de aplicativos — inclusive na própria câmera, em que devemos lembrar de todas os ajustes feitos em tempo real antes de se capturar qualquer coisa;
  • Análise de dados, o que acontece em diversos cenários.

Não podemos esquecer ainda do fator de segurança nos aparelhos em 64 bits. Criptografia é algo bastante beneficiado por maior desempenho computacional, de forma que empresas poderão fazer uso dela em larga escala para a proteção de informações corporativas contidas em diversos aparelhos, que terão maior capacidade ao longo dos anos e, como consequência, serão cada vez mais difíceis de se proteger.

No que os desenvolvedores precisam pensar

Xcode 4Para os aplicativos já existentes, a diferença na execução em 32 ou 64 bits varia de caso a caso. Basicamente, será preciso pesar se o ganho de desempenho obtido na mudança é satisfatório, frente ao aumento no consumo de memória em execução e espaço em armazenamento que os binários terão normalmente. Aplicativos em 64 bits consomem mais RAM em tempo de execução, o que pode ser prejudicial em alguns casos — da mesma forma que pode ser contornado com melhorias em outros casos. Já o aumento do espaço deles em disco é um mal a se conviver para quem optar pela mudança: afinal de contas, o seu aplicativo terá dois binários, um de 32 bits (no caso, para o iOS 6 e anteriores) e outro de 64 bits (para o iOS 7).

Mas o que acaba decidindo o planejamento em 64 bits para desenvolvedores é uma questão técnica do sistema, a ser considerada com relação ao impacto dos aplicativos em 32 bits no iPhone 5s e em futuros dispositivos baseados no A7. Segundo a Apple, o iOS 7 precisa carregar as bibliotecas compiladas para esta arquitetura lado a lado com as suas versões em 64 bits para os demais processos em execução, consumindo mais memória. Futuramente, é possível imaginar que todo mundo será motivado a ir convertendo os aplicativos já existentes para 64 bits, visando reduzir o impacto dessa particularidade do sistema operacional perante os usuários finais.

A tarefa de converter um aplicativo para 64 bits também varia em dificuldade para os desenvolvedores. Na programação em linguagem C e suas variantes, alguns tipos comuns sofrem mudanças, que podem influenciar em diversos aspectos de processamento e causar sérios problemas. No iOS 7, o ambiente de execução de aplicativos é diferente entre 32 e 64 bits, o que facilita a correspondência dessas mudanças, mas também exige que o código dos aplicativos seja examinado em busca de problemas. A documentação preliminar referente ao assunto já foi publicada pela Apple após o lançamento do iPhone 5s.

O que ainda podemos esperar?

Transformar a computação em 64 bits em um padrão para a indústria móvel ainda poderá ser uma jornada longa para outras empresas no futuro, então será legal acompanhar de perto como o mercado evoluirá com essa ideia. Para a Apple, no entanto, o processador A7 é muito mais do que apenas um ganho frente aos seus predecessores. Ao ver os executivos da empresa referindo-se a ele como produto de “classe desktop”, é impossível deixar de pensar que a divisão de semicondutores da Apple possa não ser mais apenas o segredo por trás do hardware de todo aparelho com iOS, mas também um experimento sendo lapidado para algo muito maior.

Em uma edição do MacMagazine no Ar, há alguns meses, notei que muitos já pensam em mundo no qual a Apple possa fazer Macs sem precisar dos processadores da Intel. Ainda é difícil imaginar isso acontecendo a curto prazo: pelo menos eu nunca vi indícios de um relacionamento ruim entre as duas empresas, que aliás colaboraram no progresso de tecnologias como Thunderbolt, hoje usadas em Macs e outros acessórios.

Por outro lado, lançar um iPhone com suporte a 64 bits foi um feito que não só surpreendeu o mercado, como também contrariou expectativas de desenvolvedores fomentadas pelos próprios engenheiros da Apple em edições anteriores da WWDC. O A7 é o primeiro componente criado por ela com atributos que podem fazer a diferença em computação de alto desempenho. É uma peça que continuará a evoluir para se encaixar em um Mac. Não vejo muitos motivos para ainda se ter dúvida de que essa possibilidade esteja sendo considerada.

Posts relacionados

Comentários