Sexta de Leão: Aventuras no Jardim Murado

Poucos meses atrás, enquanto eu desenvolvia um pequeno aplicativo desktop [um trabalho acadêmico] para Windows, Mac e Linux, em algum momento do desenvolvimento tive que testá-lo em todas as três plataformas. Para tornar o teste mais fácil, decidi instalar todos os três sistemas operacionais no mesmo computador, por meio de uma máquina virtual. As coisas corriam bem, até que cheguei ao MacOs.

De acordo com a política da Apple, você não tem permissão para instalar MacOs em um hardware que não seja da própria Apple. Então, como faço para testar meu software se não sou proprietário de um Mac?

O que eu podia fazer:

  • Comprar um Mac (onde o mais barato no momento custa mais de US$ 1000)
  • Pegar um Mac emprestado de alguém
  • Instalar um Hackintosh em uma máquina virtual e violar a política da Apple.

Comprar um Mac. Se você está desenvolvendo um produto que pode trazer uma receita razoável dos usuários de Mac, então a necessidade de comprar um Mac é indiscutível. Se esse não é o caso, então despejar algumas centenas de dólares no negócio só “porque sim” é algo injustificável.

Sua segunda opção é pegar emprestado o Mac de alguém que você conhece. Considerando o quão pequenos são os discos rígidos do Macbook, o proprietário não ficará feliz por você instalar um ambiente de desenvolvimento completo na máquina dele – e possivelmente deixar gigabytes de material instalado para trás. Você também teria que se adaptar à rotina de uso e tempo do proprietário, o que poderia ser bastante irritante [como assim “sua filha precisa escrever um trabalho esta noite?”].

E, por último, você pode mandar a Lei às favas e instalar um MacOs em uma máquina virtual. Uma rápida pesquisa revela centenas de tutoriais e postagens de blog sobre a instalação de MacOs. Todos instalando imagens ISO piratas tiradas do Google Drive de alguém – e agindo como se tivessem acabado de descobrir o fogo.

Obviamente escolhi a terceira opção, pois parecia a melhor de todas as escolhas ruins possíveis. Depois de passar alguns dias remexendo na ISO “ilegal” do Mac e não conseguir passar da tela de boot, era hora de refletir sobre o que estava acontecendo.

Imagem: iStock

Escrever um aplicativo desktop multiplataforma é uma tarefa muito mais difícil do que escrever um aplicativo para a web, já que o conjunto de ferramentas para esta última não é tão polido. Isso explica por que os aplicativos para web estão em todo lugar e o software para desktop está lentamente desaparecendo.

Além dos problemas gerais que o desenvolvimento de aplicativos traz, também existem inúmeras tarefas que são específicos de certas plataformas, apesar de os frameworks serem multiplataforma. É preciso por exemplo:

  • Criar soluções alternativas para todos os bugs da plataforma específica da interface de usuário (IU) escolhida. A estrutura pode estar funcionando bem em uma plataforma e se comportando de maneira extremamente estranha em outra.
  • Configurar uma máquina/ambiente de compilação para cada plataforma que você está oferecendo. A compilação cruzada de aplicativos desktop infelizmente ainda não é uma opção disponível em 2021.
  • Criar um instalador para cada sistema operacional e descobrir – depois – as especificações de instalação de cada um.
  • Descobrir que certas plataformas gritam com seus usuários quando eles tentam instalar um software que não possui um instalador assinado.

Você logo percebe que assinar um instalador em cada plataforma existente não é barato [e de fato é um aborrecimento que não leva a nada]. No Windows, você tem o prazer adicional de lidar com ‘revendedores’ duvidosos de certificados. Dê uma olhada em um dos sites deles [ou melhor não – eles são fraudes e podem roubar suas informações de cartão de crédito].

Eu me senti sujo depois de visitá-los. Você poderia, como alternativa, usar lojas online credenciadas que supostamente não têm esses problemas, mas a esta altura você realmente tem ainda vontade de fazer isso? Você dá o melhor de si para uma empresa que pode um dia simplesmente decidir que o seu aplicativo não está mais de acordo com a nova política e removê-lo de sua loja sem a menor cerimônia. Você também tem que passar pelo complicado processo de verificação de “malware” no software que você criou, o que pode, em alguns casos, levar semanas e, no fim, rejeitar seu trabalho sem nenhuma explicação. Existem dezenas de histórias de horror sobre isso na Internet. Reserve um tempo para conhecê-las antes de decidir seguir por este caminho.

Como você pode ver, desenvolver um aplicativo para desktop não envolve apenas programar a IU. O resto da subida da montanha é lidar com problemas que nem deveriam estar presentes. E se, no final, testar o software em uma determinada plataforma for muito trabalhoso, essa plataforma simplesmente não terá suporte. Este parece ser o caso recentemente, já que nem me lembro da última vez que vi um aplicativo multiplataforma. Eles são sempre vinculados a uma plataforma específica ou baseados na web.

Imagem: iStock

No final, todo mundo perde com a política do jardim murado:

  • Os usuários vão perder seu software favorito, que só existe em uma determinada plataforma.
  • Os desenvolvedores vão perder as vendas que a outra plataforma pode trazer.
  • As lojas online vão perder o percentual de sua receita, pois o desenvolvedor muitas vezes simplesmente não tem interesse em lidar com processos complicados. As plataformas deveriam tornar sua vida mais simples; em vez disso, apenas adicionam camadas de burocracia.

Laissez faire!

A Microsoft tem ouvido um monte de merda sobre seu último Windows 10. Ele tem seu próprio conjunto de problemas, como a telemetria intrusiva e a grande quantidade de ‘crapware’ aleatório – que ninguém pediu – instalado por padrão. Mas pelo menos a Microsoft faz alguma média com os desenvolvedores. Você pode instalar o Windows como quiser – seja no metal nú ou em uma máquina virtual [e ele ainda funciona em um computador com 10 anos de idade!].

A Apple, por outro lado, está erguendo muralhas cada vez maiores em torno de sua plataforma. Sua última manobra foi impedir os usuários de executar qualquer aplicativo que não tenha sido certificado. O que significa basicamente “se não tiver nossa benção a cada passo, você não vai poder usar sua máquina”. É como a mílícia que vai confiscar a sua casa se você não pagar a proteção.

Os usuários, que pagaram o dobro do que custaria um PC, agora também têm que lutar contra um ecossistema que absurdamente os impede de usar seu próprio computador. Quem diria que instalar um editor de texto é uma coisa tão perigosa? Isso vindo de uma empresa que afirma que o uso de seus produtos irá ajudá-lo a “liberar a criatividade” – e um monte de outras bobagens corporativas.

Então solução é a seguinte para os fãs da Apple: se quiserem ter programas em sua amada plataforma, vocês terão que torná-la amigável para os desenvolvedores. Nota: os desenvolvedores são aqueles que escrevem os aplicativos, publicando-os em suas ‘stores’. Se eles não puderem usar sua plataforma de trabalho preferida (que, surpresa-surpresa, pode não ser o Mac), isso significa que eles simplesmente não publicarão o software para sua plataforma.

Quanto à Apple, ela pode continuar com a muralha de pedra cercando o seu jardim, se assim quiser. Ela pode continuar cobrando a entrada, se há um número suficiente de pessoas dispostas a pagar. E se você gosta da Apple, seja feliz dizendo a todos como é lindo seu jardim.

Mas eu pessoalmente não gosto do jardim da Apple. Não gosto da maneira ‘Apple’ de fazer as coisas, dizendo às pessoas que elas estão usando seus produtos de maneira errada. Eu não gosto de como a Apple é arrogante e não joga com o resto do mundo. E, francamente, nunca gostei de Steve Jobs.

Existem jardins de mente mais aberta, onde você é responsável por administrar seu canto como quiser. Um jardim onde derrubar uma parede para dar mais espaço para as suas coisas é algo perfeitamente possível e não desaprovado. Enfim, que a Apple não rejeite aqueles que fazem valer a pena visitar seu jardim.