domingo, 15 de janeiro de 2012

Windows em ARM? Não tão simples assim


[Avisos: 1) post bastante técnico 2) 'x86' refere-se de forma indistinta a CPUs de 32 e 64 bits, a menos que o contrário seja dito]


Na CES 2012 e em outros eventos, foram demonstrados tablets baseados em processador ARM rodando o Windows 8. E alguns analistas já demonstraram seu ceticismo perante esta plataforma. Infelizmente, para quem sonha em ter um sistema operacional unificado entre diversos dispositivos, as coisas não são tão simples; neste post faço algumas considerações sobre o Windows em arquiteturas não-x86.

O principal problema: falta de aplicativos para sistemas Windows baseados em ARM. Claro, muitos programas baseados em .NET, ou outras linguagens interpretadas, poderão (teoricamente) rodar com poucas modificações, mas como fazer com programas complexos escritos em C ou C++, os quais nem sempre são portados de forma simples? Não é só dar um ./configure; make ou ir no menu da IDE e mandar compilar. No Google achamos diversos relatos de problemas de compilações em ARM.

Por sinal, a Microsoft já anunciou que apenas aplicativos Metro irão rodar em tablets ARM. Ou seja, isso evita vários dos problemas anteriormente mencionados, mas traz outros: quantos desenvolvedores irão portar seus programas para essa nova tecnologia? Empresas que desenvolvem para os 3 maiores sistemas operacionais irão querer dar suporte para mais um? Incerto.

A Microsoft já flertou com outras arquiteturas de processadores na época do Windows NT: o Windows NT 4 executava nas arquiteturas Alpha, PowerPC e MIPS. Porém, foi apenas uma curtição para tentar tomar parte do mercado do UNIX, e o Windows nessas plataformas sempre teve suporte deficiente no aspecto do software: não haviam aplicativos pois não havia mercado, e não havia mercado pois não haviam aplicativos - caindo naquele velho paradoxo do ovo ou a galinha.

Em tablets, ainda há espaço para tentar coisas novas (ninguém reclamou que o iOS ou o Android não rodavam os mesmos programas do desktop), mas no desktop - se é que um dia veremos desktops ARM sendo vendidos para o grande público, a situação é pior ainda: retrocompatibilidade e bom suporte a hardware, coisas que o Windows em x86 fornece de forma aceitável, são premissas, não luxos adicionais. Seria interessante que a Microsoft higienizasse o Windows e tirasse os legados? Certamente, inclusive iria resolver diversos problemas de segurança, mas às custas de incomodar os usuários.

Por fim, há o ponto de vista do usuário: ele vai ver "Windows 8" no desktop (x86) e no tablet (ARM) e vai presumir que ambos são exatamente iguais... exceto que não são. Isso pode potencialmente causar frustrações e dores de cabeça: "por que esse programa roda no meu desktop e não funciona no meu tablet?". Cria-se um 'fork', uma distinção que pode causar inconveniências.

E o Linux, como fica? Fica bem para aplicações específicas - eu não me importaria em ter um Linux rodando em ARM como servidor de arquivos ou para passar vídeos na minha televisão - mas tendo em vista que ele já apresenta deficiências em hardware comum (especialmente em dispositivos móveis), quem dirá em ambientes mais exóticos? Além disso há a falta de codecs e de plug-ins propretários (Flash, Java etc...), sendo que um port deles depende da boa vontade dos fabricantes.

A história de Windows rodando em dispositivos móveis e em outras arquiteturas não-x86, ainda é muito nebulosa e bastante questionável: não creio que vá ser algo suave e "just works", que será um sucesso de público como o iOS é no tablet ou o Android é no smartphone.

Nenhum comentário:

Postar um comentário

Não são lidos e não me responsabilizo pelo conteúdo deles.