I am now officially boycotting Apple: http://bit.ly/cjwkQI - Apple's move is bad for the industry, bad for developers, bad for end users.
Vendo iBook G4 baratinho. Motivo: me livrando dos produtos Apple http://bit.ly/anq8YXAlgumas pessoas ficaram surpresas, incluindo meu primo, que perguntou por que do boicote, e pediu uma explicação "numa linguagem pra leigo". Nas poucas palavras que o Twitter permite, respondi que "a nova licença deles restringe as ferramentas que os programadores podem usar. Se a indústria for por aí, acaba a inovação." Adicionei, pra fazer uma analogia rápida, que é "como se fosse um canal de TV que só aceita vídeos editados com o Final Cut Pro e proíbe o uso de qualquer concorrente." A reação dele resume bem o que senti quando soube dessa notícia.
Ainda assim, em função de outras reações que recebi, achei que valeria a pena explicar melhor o porquê de eu achar isso uma notícia particularmente preocupante.
Na semana passada, a Apple anunciou uma mudança no "iPhone Developer Program License Agreement", a licença que os programadores devem aceitar para que possam desenvolver softwares para a plataforma. Na nova versão, foi adicionada uma nova restrição aos programadores: a Apple agora dita quais linguagens de programação são permitidas para quem quer escrever programas para a sua plataforma. Obviamente, somente aquelas suportadas pelas próprias ferramentas da Apple.
A razão disso foi o iminente lançamento do Flash CS5 da Adobe, que permitiria aos programadores desenvolver aplicações em Flash e convertê-las automaticamente pra que pudessem rodar tanto no iPhone como em outros smartphones, sites web, etc. Permitiria -- se a Apple não tivesse tornado isso agora ilegal. Como era de se esperar, essa jogada deixou furiosos os caras da Adobe que tiveram a trabalheira de fazer esse conversor e estavam prontos para lançá-lo no mercado.
O motivo do meu boicote não é essa rasteira na Adobe, que também não é nenhuma santa (lembram de quando a Adobe conseguiu botar na cadeia um estudante de doutorado que fez uma apresentação mostrando os furos de segurança do formato de eBook deles?). Muito pelo contrário, chega a ser irônico ver essas duas empresas se digladiando hoje, tendo em vista que nos obscuros anos 90 a Apple se manteve viva porque era "a melhor máquina para rodar Adobe Photoshop".
O motivo do meu boicote é que isso abre um precedente inédito na indústria: nunca os programadores foram tão restringidos em sua liberdade de escolha de ferramentas de trabalho em uma plataforma popular como essa. Pior que isso: se fosse só esse o problema, seria um incômodo, mas algo com que os programadores poderiam apenas "se virar e aprender as ferramentas permitidas". O problema maior é que esse movimento da Apple não tem por objetivo "enquadrar os programadores", mas sim impedir o desenvolvimento de programas portáveis.
Um software é "portável" (do inglês portable; deveria ser traduzido "portátil" mas no meio da computação acabou ficou assim) quando ele é feito de modo a poder ser escrito uma vez e poder ser compilado ("empacotado pra rodar") em diferentes ambientes. Exemplos de softwares portáveis são o Firefox (que roda em Windows, Mac, Linux, etc.), o OpenOffice, e os próprios iTunes e Safari, da Apple, que rodam em Mac e Windows. Alguns programas, como o Microsoft Office, têm versões pra Windows e Mac, mas foram efetivamente programados duas vezes, o que, como se pode imaginar, é uma trabalheira.
O que a Adobe tentou fazer com o Flash CS5 foi criar uma ferramenta para programação de "apps" portáveis: programe uma vez e rode seu programa num iPhone, num Motorola, num Nokia, etc. O programador ganha, pois ele tem o trabalho uma vez só e não precisa apostar as fichas em uma só plataforma, e os usuários ganham, por terem mais opção de escolha.
E aí você pensa: e a Apple perde, né? Afinal, os aplicativos da sua plataforma perdem a exclusividade. Foi pensando assim que a Apple fez o que fez. A justificativa que eles parecem ter dado foi que ao proibir camadas de abstração que permitam portabilidade eles estariam prezando pela qualidade dos aplicativos da plataforma. Isso é balela: um sem-número de apps para iPhone têm interfaces totalmente customizadas e look nada "nativo", e também não faltam exemplos de softwares que têm performance excelente mesmo possuindo abstrações para portabilidade.
Mas eles não estão no seu direito de fazer isso para tentar proteger o seu mercado? Legalmente, é claro que sim, tanto que fizeram. Mas vamos tentar dimensionar o precedente que um movimento desses abre para a indústria -- em bom português, "se a moda pega". E se a Microsoft passasse a permitir apenas o uso das suas linguagens preferidas, como C# e VB.NET, para o desenvolvimento de aplicativos para Windows? Claro, ela jamais faria isso com o Windows, plataforma que cresceu e dominou o mercado em grande parte pelo enorme pool de aplicativos disponíveis, desenvolvidos nas mais variadas linguagens. Seria inviável para a própria Apple fazer isso com o Mac OSX -- até porque a viabilidade da plataforma hoje depende de um monte de programas portados de outros lugares.
Mas o que precisa da nossa atenção é que nesses novos ambientes como os smartphones, que vêm fazendo cada vez mais parte da nossa vida e de que somos cada vez mais dependentes, empresas como a Apple estão tentando impor novas regras no jogo. Regras que beneficiam os provedores dessas plataformas, aqueles que vendem o hardware e são os "gatekeepers" das application stores, mas que limitam as escolhas dos desenvolvedores das apps e dos usuários.
Foi graças à liberdade dos programadores de escrever softwares que rodam em múltiplos ambientes que muitos programas hoje são uma realidade, sejam softwares de código aberto ou fechado, do Firefox ao Safari (este último, um programa de código fechado da Apple baseado em código aberto do projeto KDE que foi tornado possível através de uma camada de abstração). Liberdade essa que a Apple agora nega aos programadores que queiram fazer programas para rodar no iPhone.
Será que a Microsoft gostou quando a Apple portou o iTunes para o Windows, e levou embora tantos usuários do Windows Media Player? Bom, é a regra do jogo, não é? Que o usuário escolha e vença o melhor programa. "Afinal, o computador é do usuário e ele instala o que quiser." Pois é, só que agora no novo mundo não é assim. Com as "aprovações" nas App Stores, o fabricante se coloca no direito de dizer o que você pode ou não instalar. E com as restrições de linguagem, o fabricante agora diz pros programadores como eles podem ou não programar.
Você pode se perguntar: "Mas peraí -- esse lance de aprovações já não era assim, por exemplo, no mundo dos videogames? Todo jogo precisa ser licenciado para ser lançado para um console, e afinal de contas, um telefone não é um computador." O problema é que o telefone é o primeiro passo. Hoje em dia os telefones são sim computadores e cada vez mais surgem "gadgets" que tomam o lugar dos computadores pessoais para um número cada vez maior de tarefas. Acaba que o computador é disfarçado de algo que não parece um computador para que os usuários aceitem ter menos liberdade de escolha do que esperariam de um computador. E mesmo no draconiano mundo do licenciamento de videogames, a liberdade de escolha de linguagens de programação e de desenvolvimento de games portáveis pra múltiplas plataformas sempre foi mantida.
Aquilo que a Apple fez ao portar o iTunes para o Windows, ela agora não permite que os programadores façam. Sob o pretexto de manter a qualidade da plataforma, ela impõe mais e mais restrições, mesmo a própria Apple tendo mostrado com o OSX que se pode fazer uma plataforma de qualidade sem restrições desse tipo. Como disse lá no tweet inicial, isso é ruim para a indústria, ruim para os desenvolvedores, ruim para os usuários finais. Nesse iMundo da Apple, as pessoas têm cada vez menos liberdade de escolha.
Que fique claro: não sou daqueles que simplesmente "odeiam a Apple". Meu primeiro computador foi um clone nacional de Apple II, em 1986. Meu irmão xerocava na tabacaria perto de casa páginas e páginas da revista Nibble (muito cara pra comprar!) com listagens de programas em AppleSoft BASIC. Nos anos 90, quando estava desistindo de tentar conseguir trazer dos EUA um Commodore Amiga, meu sonho de consumo era um Macintosh Performa. Isso tudo antes do primeiro iMac colorido sequer existir. Quando fui pros EUA em 2005 finalmente pude ter um Apple de novo, e comprei um iBook G4, o último modelo com chip PowerPC, logo depois que a Apple anunciou a transição para o chipset Intel (que fez com que os Macs se tornassem, basicamente, PCs bonitos e caros -- que o diga meu amigo Fabio que roda Mac OSX num netbook Dell). É com tristeza que eu vejo uma empresa que já brilhou tanto na indústria promovendo inovação tecnológica agora recorrer a táticas como essa para brigar por mercado.