sábado, 27 de junho de 2020

Apple abandona a Intel

A notícia estourou esta semana, a Apple vai deixar de usar os processadores Intel nos seus processadores, em favor de chips projetados internamente, baseados em arquitetura ARM. Não é totalmente uma surpresa, uma vez que ela já projeta os chips dos seus celulares e tablets, que estes chips são plenamente capazes de assumir mais carga de trabalho, que a Apple vem sabidamente enfrentando problemas com os chips Intel em termos de aquecimento, com o consequente throtling, e por fim, que os rumores sobre isso já circulam faz tempo. Então não é propriamente motivo de surpresa. Assim como não seria se a Microsoft decidisse fazer o mesmo na linha Surface, pois existem não apenas rumores sobre isso faz tempo, mas tentativas concretas, como no Windows RT. Mas agora que a Apple realmenet anunciou oficialmente, e que é um fato concreto, isto dá oportunidade para uma série de considerações interessantes.



A primeira e mais rápida, é que mais uma notícia negativa para o lado da Intel, se somando à fase ruim da empresa no setor para o consumidor final, como relatei neste artigo recente.  Ali eu defendo que não é necessáriamente o fim do mundo para a Intel, e inclusive eu aposto que isso pode se reverter. Ao mesmo tempo é preciso muita cautela para não acreditar que por ser uma empresa enorme ela é indestrutível (vide Kodak, Nokia, Xerox, etc.). O que está acontecendo aqui é uma mudança maior de mercado do que a simples maré da competição com a AMD, como veremos mais adiante neste artigo. Então isso lança mais emoção, digamos, sobre o desenrolar dos acontecimentos com a Intel. Ainda mais se a MS também for pelo mesmo caminho. Imagino que agora a Intel possa tentar ser mais parceira da MS, oferecer condições melhores, para não perder mais esta posição de mercado. Mas até que ponto isso pode ser  realmente de interesse da MS, já que, assim como a Apple, eles também querem dispositivos menores e que não esquentem, e a Intel parece não conseguir suprir isso? E uma história para se acompanhar com atenção nos próximos anos, ou quem sabe meses...

Outro ponto é que esta não é a primeira vez que a Apple muda os chips do Mac. Ele começou com a Motorola, na linha 68.000, mudou para a linha PowerPC, de arquitetura RISC, depois para a linha da X86, da Intel (CISC), e agora assume fazer seus próprios chips usando arquitetura ARM (RISC). Ee creaio que esta pode ser uma mudança mais definitiva, pois não vejo motivos para voltar atrás diante do que eu vou descrever até o final deste artigo. O fato é que a Apple confirma a sua cultura de não se apegar a tecnologias legadas, o que tem um lado muito bom e um ruim. O lado ruim é que gera contratempos para os usuários que estão felizes e satisfeitos com a tecnologia que vai ser retirada. Eu não queria ser usuário Apple neste momento. Mesmo que eles administrem a mudança de forma perfeita, e tudo saia transparente para os clientes, existe uma incerteza agora. O lado bom é que favorece a inovação, não só de seus próprios produtos, mas do mercado inteiro. Nunca tive iphone, mas se hoje eu tenho um Android com touch screen e aquele formado conveniente, tenho que reconhecer que isso veio da Apple (não que eu acho que eles devam ter propriedade intelectual por cada curvinha do aparelho).  Mas o que estou dizendo é que esta mudança da Apple pode e provavelmente vai influenciar todo o mercado de computadores pessoais. Vamos ver isso ainda nesse artigo, mas antes precisamos entender o que a Apple busca com esta mudança?

 Pelo lado financeiro, eles aumentarão a margem de lucro ao cortar o pagamento ao fornecedor externo, a Intel, e fazendo a R&D (ou P&D, pesquisa e desenvolvimento) dentro da empresa. A fabricação é quase certo que será terceirizada, como fazem a AMD e a nVidia, mas este custo é muito menor do que comprar o chip de outro fornecedor que fez tudo, inclusive o projeto. Pelo lado técnico, o resultado mais imediato de projetar os próprios chips é mais agilidade e flexibilidade para customizar os hardware para atender as necessidades das aplicações. Ainda do ponto de vista técnico, o resultado é que deve haver uma homogeinização do ecossistema da Apple entre os disposivivos mobile e os PCs. Porque como disse lá no início, a Apple já usa seus próprios chips nos celulares e teblets. Só vai extender isso aos notebooks e desktops. Já o sistema operacional tem a mesma base para o iOS e MacOS. As fronteiras entre a parte mobile e computador pessoal deve ser tornar cada vez menor. E acho que esta é a tendência que a Apple vai jogar no mercado nos próximos anos. Cada vez mais vermos notebooks que parecem tablets, com tecladinho que parece uma capinha. E a Microsoft e sua linha surface também não está muito longe disso. Os chips ARM são reconhecidamente mais eficientes em termos de consumo e termicamente. Isso possibilitará dispositivos mais finos e ele, o que é ótimo. Agora imagine a Google também com seus Chomebooks usando ARM, até o Raspberry Pi que já é ARM, e temos um mercado significativo baseado em ARM, usando arquitetura RISC, e esse é a segunda tendência.

Quando a tecnologia RISC começou a ser mais falada na midia de tecnologia, lá nos anos 90, ela parecia ser o futuro. Era usada em worksations e depois a própria Apple a adotou, nos chips PowerPC. Claramente era o futuro, só que continuou sendo por décadas, e contunuamos usando X86 (CISC) nos nossos PCs, até hoje. Mas porque a arquitetura RISC seria melhor? Na realidade, nem posso afirmar que seja melhor, e sim que são abordagens diferentes, com vantagens e desvantagens. Basicamente, a diferença é que no RISC, que significa Reduced Instrucion Set Computer, temos um número relativamente pequeno (daí o "reduzido" do nome) de instruções de máquina (o código de máquina) e com isso são necessárias mais intruções para fazer determinada tarefa, com mais ciclos de intrucão. Para fazer uma terefa o programa tem que combinar mais intruções diferentes. Já no CISC (Complex Instruction Set Computer), temos um conjunto muito grande de instruções, que já fazem as mais diferentes operações. Existe mais possibilidade de já existir uma instrução que faça uma determinada tarefa, sem precisar combinar várias delas. "Tem instrução pra tudo", se poderia exagerar. Não tem pra tudo, mas são muito mais possibilidades. Mas para isso cada instrução na realidade é composta outras instrucões internas do processador, o microcódigo, e não confundir o microcódigo com o código de máquina! É como se uma única instrução de máquina executasse um pequeno programa escrito em uma outra linguagem, o microcódigo, e com isso vão ser necessários mais ciclos de máquina. No RISC não existe microcódigo, e a instrução é executada em um ciclo. Falando desta forma parece que se trocou 6 por meia dúzia, mas existem outras diferenças, que não cabe aqui nem é o objetivo abordar. Mas citando apenas uma, no caso do microcódigo exite possibilidade de falhas de segurança neste código, afinal é um programa, como as que ocorreram nos casos do Spectre e Meltdown. Não apenas falhas de segurança, mas qualquer outro bug, e que depois é impossível de corrigir no chip. Ou seja, no CISC existe mais lógica embarcada destro do processador, a tal complexidade, o que para mim por si só é uma desvantagem. E por causa disto desde que comecei a ler sobre RISC simpatizei mais com o RISC. Filosoficamente prefiro RISC, mas isso não importa em nada para o usuário comum, que vai estar usando uma máquina baseada RISC ou CISC e não vai perceber diferença alguma. E pior, mesmo eu que prefiro CISC, lamentaria uma eventual derrocada do X86, em parte pelo lado afetivo, afinal já uso essa tecnologia por mai de 30 anos (2020-1987), em parte pela quantidade de investimento, peças, softwares, jogos, que se baseiam nisso. Chega a ser assustador pensar que poderia acabar.

Então se para o usuário final não faz diferença, toda esta explicação teria sido inútil, a não ser porque ela pode moldar o mercado de forma bem diferente do que é hoje. Não com relação à percepção do usuário como relação ao PC executando, mas como ele será construído e os softwares serão produzidos. Para começar, tem o problema da retro-compatibilidade. Ou seja, os programas binários existentes para x86 não vão rodar, e no máximo poderiam ser executados por emulação, com muita perda de desempenho. Segundo, que com a mudança de paradigma as apliocações começarão a serem feitas para aproveitar da melhor forma possivel a arquitetura ARM. Com isso, a X86, supondo que sobreviva, pode ir ficando relegada a um nicho. Podemos ver as mesmas aplicações rodando melhor em ARM do que em um processador X86 com performance teórica equivalente, simplesmente porque os desenvolvedores não investiram o mesmo tempo em otimizar neste último. E isso pode acelerar o abandono desta tecnologia.  E se o X86 for sendo abandonado, qual a consequência para o mercado? Primeiro, eu vejo uma dependência enorme na ARM, que licencia as tecnologias nos quais se baseiam os chips que as utilizam. E qualquer centralização é um risco. E depois, que o x86 é um dos pilares sobre os quais se baseiam a arquitetura aberto do PC atual. Aquela com os padrões de barramento, memória, BIOS ( ou UEFI), SATA, etc. É o que permite a liberdade de escolha do usuário, de colocar uma placa de vídeo AMD ou nVidia, configurar memória, trocar HD, usar Linux ou Windows. Nos ecossistemas baseados em ARM atuais não existe nada parecido. São sistemas fechados, proprietários, e vc pode apenas escolher entrar ou sair. Nada impede que um outro padrão aberto de PC possa existir com ARM, só que no momento ele não existe. Devemos trocar o certo pelo duvidoso?

E um outro aspecto desses ecossistemas fechados é a ênfase na lojas próprias dois fabricantes. De fato, as lojas são convenientes e mais seguras. No PC já existe a loja do Windows, e semelhantes no Linux. Mas elas são uma opção, o usuário é livre caso queira e saiba o que está fazendo de baixar e instalar um software por fora das lojas. Nos celulares e tables em geral não. Existe a Play Store no Android, a loja da Apple, e o usuário deve usar esta loja (sim, no Android há como contornar isso, mas não é um método recomendado e praticamente nunguém o utiliza). Cabe a cada um decidir o quanto vale a liberdade de instalar software, mas é obvio que este esquema de loja centralizada vai entar em choque com as diversas lojas existentes no PC: Steam, Epic, GOG, etc., que vendem majoritariamente jogos, mas não apenas. Na Steam, pelo menos, sei que é possivel adquirir aplicativos. O fim destas lojas representaria mais um nível de centralização. O usuário final é obrigado a comprar da única loja do ecossistema, o desenvolvedor é obrigado a disponibilizar seu aplicativo ou jogo neste loja, sem opção de escolher outra que ofereça uma taxa menor de comissão, ou tenha políticas melhores. Caso o aplicativo seja negado nesta loja, ele não poderá ser oferecido em nenhuma outra. Fim. Atualmente no PC, se não gostar de nenhuma loja o desenvolvedor pode vender o programa no seu próprio site. Ou criar sua própria loja. Será que a intenção da Apple, ao diminuir as diferenças entre mobile e nonebooks e desktops, não é também acabar centralizando a loja de programas?

Conclusão: é mais uma novidade, gosto de novidades, e dá uma força para a arquitetura ARM/RISC, que vem tendo sucesso em todas as áreas em que é aplicada. Pode ser um sopro de ar fresco no mercado de hardware.  Mas também traz um lado potencialmente sombrio de centralização, falta de opções, monopólios, diminuição da propriedade efetiva do usuário sobre seu hardware, ou seja, de poder fazer o que quiser com ele: trocar peças, trocar o SO, usar software de qualquer fonte. A questão aqui não é o que acontece dentro do ecossistema Apple, do qual não faço parte e não tenho previsão de fazer (embora não caia no erro clássico de dizer que nunca farei, só não tenho previsão disso), mas sim das influências que pode ter no mercado como um todo, pois a história mostra que a Apple tem muita influência nas tendências. Só o futuro dirá, e em questões como essa, em que eu claramente tenho uma posição, que se ainda não ficou claro, é a favor do máximo de liberdade e propriedade do usuário sobre seu hardware para ele fazer o que quiser, é muito arriscado fazer previsões. Uma previsão aqui pode ser pior do que um chute aleatório. Melhor do que isso é evitar torcidas e tentar de alguma forma influenciar para o melhor resultado.
 

Nenhum comentário :

Postar um comentário