segunda-feira, 26 de junho de 2017

Leve meu dinheiro, Nintendo

Super NES Classic Edition

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

US$ 79,90. Disponível em 29/09. Já imagino o preço absurdo aqui na Banânia. Não importa. Esse console marcou minha infância. Os jogos não são muitos, mas são top.

Tomara que a Nintendo não repita o que aconteceu com o NES Classic Edition. Precisam produzir mais unidades desta vez para suprir a demanda, que deverá ser ainda maior.

domingo, 11 de junho de 2017

A monocultura x86

Intel fires warning shots at Microsoft, claims x86 emulation is a patent minefield (Ars Technica)

Ainda não sabemos como exatamente a Microsoft pretende emular o conjunto de instruções x86 quando o Windows 10 rodar sobre ARM. Se fosse implementar apenas as instruções do modo protegido do i386, provavelmente não haveria problema algum, visto que é improvável qualquer patente relacionada existir. No entanto, software atual precisa mais do que isso. Há diversas instruções adicionais possivelmente minadas por patentes, especialmente SIMD, que são requeridas nos dias de hoje.

Nossa dependência do conjunto de instruções x86 precisa diminuir. Se pensarmos bem, não escreve-se mais aplicativos comercialmente em assembly* há muito tempo. Usam-se linguagens de alto nível. Fica a cargo do compilador gerar código de máquina para a arquitetura escolhida. Não existe nada que impeça, no momento em que a plataforma Windows 10 ARM existir, desenvolvedores disponibilizarem binários ARM nativos. Suporte no Visual Studio existirá. No GCC e Clang não demorará. Tropeçamos, porém, no dilema do ovo e da galinha: enquanto não popularizar a plataforma, não haverá estímulo para os desenvolvedores recompilarem/ajustarem seus códigos; por outro lado, enquanto não houver aplicativos, a plataforma terá dificuldade em popularizar-se. A emulação x86 vem para resolver a segunda questão. Com o tempo, mais e mais programas passariam a ter versão ARM nativa e a dependência diminuiria.

Vamos aguardar a Microsoft detalhar as coisas.


* Programas que precisam de alto desempenho costumam ter algumas partes escritas em assembly usando um montador. Tais códigos geralmente detectam quais instruções são suportadas durante a execução e possuem um fallback genérico que roda (mais lentamente) em qualquer modelo que implemente a arquitetura em uso.